我有一个带有 .htaccess 的漂亮 URL 设置,它将不存在的 URL(严格来说不是 404 错误)重写为提供内容或 404 消息的 PHP 脚本。我已经从这次重写中排除了现有文件和目录,这样 CSS、图像等就不会受到影响。
但是,有一个受 .htpasswd 密码保护的目录也应该绕过重写规则,但在为其启用 .htpasswd 时不会。
父目录.htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /callbacks.php [L]
有一个带有以下 .htaccess 的子目录:
RewriteEngine on
Options All -Indexes
AuthName "Backstage Access"
AuthType Basic
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
require valid-user
如果我删除该require valid-user
行,父目录的重写规则会根据需要忽略子目录,我可以从浏览器访问它。但是当我开启授权时,父目录的.htaccess将子目录改写为/callbacks.php
.,导致自定义404错误。
有想法该怎么解决这个吗?显然,我无法消除对密码保护的需求。我尝试删除父重写规则,而是简单地将/callbacks.php
其用作 404 错误文档,但随后未传输 POST 和 GET 数据。