在我的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"
这个插件运行得很好。