.htaccess- RewriteCond会导致重定向

时间:2015-12-14 21:17:34

标签: wordpress .htaccess rewrite

在我的wordpress网站上,我发现我需要删除RewriteCond %{REQUEST_FILENAME} !-d以便制作一个我正常使用的插件。 我的.htaccess文件如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}  !-d
RewriteRule . /index.php  [L]
</IfModule>

我剥离RewriteCond %{REQUEST_FILENAME} !-d后 从.htaccess文件中,某些页面(例如site.com/wp-admin)返回302,其中Location与完全相同的页面,因此有一个循环的302请求到site.com/wp-admin.

我想知道可能导致此问题的原因。

修改: 为什么我从.htaccess文件中删除了这个条件? 在删除它之前,$ _SERVER数组包含以下值:

["REQUEST_URI"]=>
  string(29) "/best/?sort_by=post_title_asc"
["REDIRECT_URL"]=>
  string(10) "/403.shtml"
["QUERY_STRING"]=>
  string(0) ""

预期查询字符串的插件无法正常工作。 删除后,$ _SERVER数组包含以下值:

["QUERY_STRING"]=>
  string(22) "sort_by=post_title_asc"
 ["REQUEST_URI"]=>
  string(29) "/best/?sort_by=post_title_asc"
["QUERY_STRING"]=>
  string(22) "sort_by=post_title_asc"

这个插件运行得很好。

0 个答案:

没有答案