Wordpress重写规则与.passwd冲突

Wordpress重写规则与.passwd冲突,wordpress,.htaccess,mod-rewrite,.htpasswd,Wordpress,.htaccess,Mod Rewrite,.htpasswd,在我的root.htaccess文件中,我有以下Wordpress代码: RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] 与标准代码稍有不同,因为Wordpress文件位于“Wordpress”目录中,但相对于域根仍会出现重写。例如,一篇博客文章可以被称为sit

在我的root.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文件之间存在冲突。我试着写了一大堆重写条件,试图用密码排除子目录,但无法确定它。

好的,墨菲定律,在发布问题后就解决了

Wordpress重写所需的额外条件是:

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]
因此,完整的Wordpress重写代码变成:

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|#.*|\?.*|/[^.]*)$  [NC]
RewriteRule . /wordpress/index.php [L]
现在我要去吃我的馅饼了