我一直在尝试重写诸如
之类的网址www.somesite.com/?x=372
进入网址
www.somesite.com /
我目前的代码似乎不起作用
RewriteEngine On
RewriteCond%{QUERY_STRING} x =(。*)
RewriteRule http://www.somesite.com/ [R = 301,L]
我已经找到了无数种尝试用htaccess做的方法,但仍然没有成功。
答案 0 :(得分:3)
如果您只是想重定向客户端以删除查询字符串(网址中 ?
之后的所有内容),那么您可以尝试这样做:
RewriteEngine On
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule ^ http://www.somesite.com/? [R=301,L]
你似乎已经完成了大部分权利,但是你的规则需要匹配,而你的目标(http://www.somesite.com/
)需要 ?
结束,以便重写之前的任何查询字符串都不会被追加。
在Apache 2.4或更新版本中,您可以使用QSD query string discard flag:
RewriteEngine On
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule .* http://www.somesite.com/ [R=301,L,QSD]