Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用RewriteRule[R=404]隐藏文件夹会产生无止境的重定向循环_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

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

Apache 使用RewriteRule[R=404]隐藏文件夹会产生无止境的重定向循环,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我试图用这段漂亮的代码隐藏我的wp admin文件夹,但问题是如果我的用户代理中没有“XYZ”,它就会陷入infinte重定向循环中: <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 R

我试图用这段漂亮的代码隐藏我的wp admin文件夹,但问题是如果我的用户代理中没有“XYZ”,它就会陷入infinte重定向循环中:

<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>

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

# 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>
#也不要让用户进入错误文档文件夹
重定向匹配404/errordocs
重新启动发动机
重写基/
#使wp admin文件夹仅对用户代理中带有“XYZ”的浏览器可见:
RewriteCond%{HTTP\u USER\u AGENT}!XYZ
重写规则^wp config/(.*)$errordocs/404.html[L]

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

R标志重定向取决于替换URL。?什么是
XYZ
,您确定该参数不适用于所有代理吗?这不完全是您想要的,但您可以使用
[F]
标志来禁止页面。您需要将用户发送到当前文件夹之外。你的404错误文档在哪里?Gerben:是的,403刚刚确认他们找到了正确的路径。Wige:是/wp content/themes/xyz/404.php谢谢你的Wige。这听起来很合理。我试试看。
# 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>