在我的根 .htaccess 文件中,我有以下 Wordpress 代码:
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
与标准代码略有不同,因为 Wordpress 文件位于“wordpress”目录中,但重写仍然相对于域根目录出现。例如,可以将博客文章称为 site.com/this-is-a-blog-post.php 并且重写工作。
这很好用,除非我想使用 htpasswd 来保护站点上的目录。如果我将以下代码添加到任何目录中的 .htaccess 文件中,我会在尝试浏览到该目录时得到 404:
AuthName "Private"
AuthUserFile "/home/passwd"
AuthType Basic
require valid-user
当 Wordpress 重写代码的最后一行被注释掉时,此代码可以正常工作,但是在 Wordpress 代码完整的情况下,我的密码保护目录给出了 404。
所以我在两个 .htaccess 文件之间存在冲突。我尝试编写一堆 RewriteCond 来尝试排除应用密码的子目录,但无法确定。