我有这个规则:
RewriteCond %{QUERY_STRING} someGetParameter=1
RewriteRule ^someoldpage.php$ http://newdomain.ru/page/ [L,R=301]
重定向后我得到
http://newdomain.ru/page/?someGetParameter=1
代替
http://newdomain.ru/page/
为什么会出错?
它会“错误”,因为您的假设是错误的,请参阅RewriteRule
指令:
修改查询字符串
默认情况下,查询字符串会原封不动地传递。但是,您可以在包含查询字符串部分的替换字符串中创建 URL。只需在替换字符串中使用问号来指示应将以下文本重新注入到查询字符串中。当您想删除现有的查询字符串时,只用问号结束替换字符串。要组合新旧查询字符串,请使用
[QSA]
标志。
所以:
RewriteCond %{QUERY_STRING} someGetParameter=1
RewriteRule ^someoldpage.php$ http://newdomain.ru/page/? [L,R=301]