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

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

我在根目录中安装了 WordPress,并为其设置了 RewriteRule。

我需要用密码保护子文件夹(“蓝色”),因此我在该文件夹中设置了 htaccess。

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

这是根 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>

有任何想法吗?

答案1

尝试从 RewriteCond 中删除前导 /

RewriteCond %{REQUEST_URI} !^blue/

編輯:它应该无需 RewriteCond 即可工作,因为前两个条件应该涵盖它,除非您在该目录中进行更多重写或类似操作。

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

如果你没有使用共享主机,或者你的主机支持共享主机,请尝试设置重写日志这会告诉你到底发生了什么。

相关内容