我一直在尝试重写一个 URL,例如
www.somesite.com/?x=372
进入一个网址
www.somesite.com/
我当前的代码似乎不起作用
重写引擎开启
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule http://www.somesite.com/ [R=301,L]
我已经查找了无数种尝试使用 htaccess 进行操作的方法,但仍然没有成功。
我一直在尝试重写一个 URL,例如
www.somesite.com/?x=372
进入一个网址
www.somesite.com/
我当前的代码似乎不起作用
重写引擎开启
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule http://www.somesite.com/ [R=301,L]
我已经查找了无数种尝试使用 htaccess 进行操作的方法,但仍然没有成功。
如果您只是想重定向客户端以删除查询字符串(?
URL 中的所有内容),那么您可以尝试以下操作:
RewriteEngine On
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule ^ http://www.somesite.com/? [R=301,L]
看起来,您的大部分内容都是正确的,但是您的规则需要匹配,并且您的目标(http://www.somesite.com/
)最后需要 a ?
,这样重写之前的任何查询字符串都不会被附加。
在 Apache 2.4 或更高版本中,您可以使用 QSD查询字符串丢弃标志:
RewriteEngine On
RewriteCond %{QUERY_STRING} x=(.*)
RewriteRule .* http://www.somesite.com/ [R=301,L,QSD]