2

我一直在尝试重写一个 URL,例如

www.somesite.com/?x=372

进入一个网址

www.somesite.com/

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

重写引擎开启

RewriteCond %{QUERY_STRING} x=(.*)

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

我已经查找了无数种尝试使用 htaccess 进行操作的方法,但仍然没有成功。

4

1 回答 1

3

如果您只是想重定向客户端以删除查询字符串(?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]
于 2012-08-04T02:14:06.247 回答