我的 document_root 是/home/john/public_html
。
example.com/subdir/index.php
我需要文件处理的URL /home/john/public_html/index.php
。
这是我输入的内容/home/john/public_html/.htaccess
:
RewriteEngine on
RewriteRule ^.+$ index.php
即内部将所有内容重定向到 index.php。
这工作得很好,直到我向子目录添加了 HTTP 身份验证,如下所示:
在文件中/home/john/public_html/subdir/.htaccess
:
AuthType Basic
AuthName "Restricted subdir"
AuthUserFile "/home/john/.htpasswds"
require valid-user
现在,当我请求 URL 时example.com/subdir/index.php
,Apache 会忽略我的重写规则并要求客户端输入用户名和密码(典型的 HTTP 身份验证对话框)。
为什么会发生这种情况?如何解决?