我们想重定向下面提到的网址。
来自网址:
www.example.com/itemLevelFilterPage.action?keyWordTxt=&srchTyp=CATNAV&attrFilterList=attr_brand%3A%223M%22&resultPage=0
到网址:www.example.com/4G
我们在apache配置中写了301条规则如下。
RewriteEngine on
RewriteRule ^/itemLevelFilterPage.action?keyWordTxt=&srchTyp=CATNAV&attrFilterList=attr_brand%3A%223M%22&resultPage=0 /4G [L,R=301]
但是重定向没有按预期工作。任何建议都将受到高度赞赏。
答案 0 :(得分:2)
mod_rewrite
will not look at query strings作为匹配的一部分,除非您明确要求:
RewriteCond %{REQUEST_URI} ^/itemLevelFilterPage\.action$
RewriteCond %{QUERY_STRING} ^keyWordTxt=&srchTyp=CATNAV&attrFilterList=attr_brand%3A%223M%22&resultPage=0$
RewriteRule (.*) http://www.example.com/4G? [R=301,L]
第一个条件确保我们查看正确的页面,第二个条件检查查询字符串,规则会将URL重写为所需的页面。
规则上的尾随问号可确保删除旧的查询字符串。如果您使用的是Apache 2.4,则可以使用查询字符串discard标志:
RewriteRule (.*) http://www.example.com/4G [R=301,L,QSD]