如何从HTaccess RewriteRule中排除一个子文件夹

我有WordPress安装在我的根目录,为此RewriteRule的地方。

我需要密码保护一个子文件夹(“蓝色”),所以我在这个文件夹中设置htaccess。

问题是,根htaccess RewriteRule应用于“蓝色”,因此我得到一个404在主WordPress站点(而不是打开子文件夹的密码对话框)。

这里是根htaccess:

RewriteEngine on <Files 403.shtml> order allow,deny allow from all </Files> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 

我尝试插入这个作为第二行,无济于事:

 RewriteRule ^(blue)($|/) - [L] 

还尝试在index.php之前插入这个RewriteRule:

 RewriteCond %{REQUEST_URI} !^/blue/ 

那也行不通。

还插入到子文件夹的htaccess中,这也没有工作:

 <IfModule mod_rewrite.c> RewriteEngine off </IfModule> 

有任何想法吗?

尝试删除领先/从RewriteCond

 RewriteCond %{REQUEST_URI} !^blue/ 

编辑:它应该没有RewriteCond作为前两个条件应该覆盖它,除非你在该目录或更多的重写。

您是否使用自定义错误页面? 有些东西正在改变Request_URI,使它不再符合任何条件。

如果您不在共享主机上,或者您的主机支持它,请尝试设置重写日志,这将告诉您到底发生了什么。