我有一个旧网址列表,这些网址被映射到其等效的新网址。一些旧的URL包括一些没有的查询字符串。
映射没有设置模式,所以我不能使用任何通配符规则,我需要进行完全匹配。
我一直在尝试这种方法:
RewriteRule ^products/index\.cfm\?pageName=Products/Index$ /test1/ [R=301,QSD,L,NC]
RewriteRule ^products/index\.cfm$ /test2/ [R=301,QSD,L,NC]
但是,如果我转到http://example.com/products/index.cfm?pageName=Products/Index,它会在第二条规则中匹配,并重定向到http://example.com/test2/
谢谢,
JT
答案 0 :(得分:0)
您无法在重写规则的模式中与查询字符串匹配。您需要匹配%{QUERY_STRING}
变量:
RewriteCond %{QUERY_STRING} ^pageName=Products/Index$ [NC]
RewriteRule ^products/index\.cfm$ /test1/ [R=301,L,NC]
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^products/index\.cfm$ /test2/ [R=301,L,NC]