使用htaccess从基本URL中删除变量

时间:2012-08-03 21:17:38

标签: .htaccess url variables

我一直在尝试重写诸如

之类的网址
  

www.somesite.com/?x=372

进入网址

  

www.somesite.com /

我目前的代码似乎不起作用

  

RewriteEngine On

     

RewriteCond%{QUERY_STRING} x =(。*)

     

RewriteRule http://www.somesite.com/ [R = 301,L]

我已经找到了无数种尝试用htaccess做的方法,但仍然没有成功。

1 个答案:

答案 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]