将 .htaccess 重写中的基本身份验证凭据传递到受保护的文件夹

将 .htaccess 重写中的基本身份验证凭据传递到受保护的文件夹

我的公共文件夹下有两个文件夹,F1 和 F2,每个文件夹都有一个 .htaccess 文件。F1 受 .htaccess 中的基本身份验证保护,如下所示:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/myaccount/.htpasswd
AuthGroupFile /dev/null 
require valid-user

我正在将 F2 中的 URL 重写到 F1 中,如下所示:

RewriteRule ^f2file\.php$ ../F1/f1file.php [NC,L]

这次重写有效,但它对我在 F1 中设置的基本身份验证提出了挑战。有没有办法在重写时发送基本身份验证凭据,或者在从本地文件夹重写时绕过基本身份验证?

我尝试设置环境变量,例如这个问题

SetEnvIf Request_URI ^f2file\.php$ ADD_BASIC_AUTH
RequestHeader set Authorization "Basic XXXXXXXX" env=ADD_BASIC_AUTH

其中 XXXXXXXX 是 user:pass 的 base 64 编码值,如上文所述。但是,这不起作用,它仍然要求我提供凭证,可能是因为我没有以代理身份进行重写?有什么想法吗?谢谢!

答案1

由于 F1 文件夹受密码保护,因此需要密码才能直接访问此文件夹中的任何内容。您或许可以使用从 F2 文件夹到 F1 文件夹所需文件的符号链接。这样,客户端将访问 F2 上的文件,而不是 F1 上的文件,并且不需要密码。

ln -s ../F1/f1file.php f2file.php

相关内容