如何使用 apaches 的 mod_rewrite 重写子目录的请求?

如何使用 apaches 的 mod_rewrite 重写子目录的请求?

我的 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 身份验证对话框)。

为什么会发生这种情况?如何解决?

相关内容