将index.php和任何查询字符串重定向到根文件夹

时间:2014-08-06 00:01:54

标签: apache .htaccess mod-rewrite

我有这个简单的htacess将index.php重定向到根文件夹:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]

我发现它仍然保持查询字符串附加到index.php。例如:

http://domain.com/index.php?query=string

将被重定向:

http://domain.com/?query=string

如何摆脱任何查询字符串?

1 个答案:

答案 0 :(得分:1)

重定向时添加QSD标志:

RewriteRule ^(.*)index.php$ /$1 [QSD,R=301,L]

尽管如Apache文档中所述

  

此标志在2.4.0及更高版本中可用。


对于较旧的Apache版本,您可以通过传递自己的查询字符串来丢弃它们:

RewriteRule ^(.*)index.php$ /$1? [R=301,L]

注意重定向中的孤独?