2011-02-03 47 views

回答

1

这将是正确的规则:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^?#\ ]*)\?[^\ ]*\ HTTP/ [NC] 
RewriteCond !{QUERY_STRING} id 
RewriteRule .*$ %{REQUEST_URI}? [R=301,L] 

更新

# Query rewrite exceptions 
RewriteCond %{QUERY_STRING} !callback=.* 
0

这是行得通吗?

RewriteCond %{QUERY_STRING} ^.+$ 
RewriteCond %{QUERY_STRING} !^id= 
RewriteRule ^(.*)$ $1?%1 [R=301,L] 

提示:在测试期间,使用302重定向而不是301,因为301重定向是由浏览器存储的。完成测试后,您终于可以切换到经典301。

0

如果您需要http://site.com/page/?YOURSTRING=blabla

重定向到http://site.com/page/

然后看看这个链接 - https://stackoverflow.com/a/15680832/2215124

+0

您的共享URL有重写(删除)定义的查询字符串以及除去定义的查询字符串以外的所有查询的示例。 – Binyamin 2013-03-28 15:05:30