我有这条规则:
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/
为什么会出错?
答案 0 :(得分:1)
因为你的假设是错误的,所以“错了”,请参阅RewriteRule
directive:
修改查询字符串
默认情况下,查询字符串不会更改。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串中使用问号,即表示应将以下文本重新注入查询字符串。如果要删除现有查询字符串,请仅使用问号结束替换字符串。要合并新旧查询字符串,请使用
[QSA]
标记。
所以:
RewriteCond %{QUERY_STRING} someGetParameter=1
RewriteRule ^someoldpage.php$ http://newdomain.ru/page/? [L,R=301]