使用RewriteRule [R = 404]隐藏文件夹会产生无限重定向循环

时间:2012-12-13 15:22:01

标签: apache .htaccess mod-rewrite

我正在尝试使用这段漂亮的代码隐藏我的wp-admin文件夹,但问题是如果我的用户代理中没有“XYZ”,它会陷入infinte重定向循环:< / p>

<ifModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 # Make wp-admin folder only visible to browsers with "XYZ" in the User Agent:
 RewriteCond %{HTTP_USER_AGENT} !XYZ
 RewriteRule ^(.*)$ - [R=404,L]
</ifModule>

我知道R标志会生成一个外部重定向,所以我试过这个希望它会产生一个内部重定向,没有运气:

RewriteRule ^(.*)$ 404.php [L]

1 个答案:

答案 0 :(得分:0)

您必须将用户发送到当前目录之外。我会将规则移动到站点的根目录,如下所示:

# Keep user out of your error document folder as well
RedirectMatch 404 /errordocs
<ifModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 # Make wp-admin folder only visible to browsers with "XYZ" in the User Agent:
 RewriteCond %{HTTP_USER_AGENT} !XYZ
 RewriteRule ^wp-config/(.*)$ errordocs/404.html [L]
</ifModule>

这样您就可以将用户重定向到另一个文件夹。否则,当您尝试从文件夹中重定向用户时,会出现循环和其他问题。