我将大多数网页(包括索引)从firstdomain.com重定向到seconddomain.com。
要重定向页面,我使用:
Redirect 301 /faq http://www.seconddomain.com/faq
Redirect 301 /contact http://www.seconddomain.com/contact
要重定向索引,我使用:
RewriteRule ^$ http://www.seconddomain.com/ [R=301,L]
现在,问题在于我希望保留http://www.firstdomain.com/?query=9328。使用上面的代码,它会重定向到http://www.seconddomain.com/?query=9328
我的问题是:除非包含查询,否则如何重定向索引?
答案 0 :(得分:0)
使用RewriteRule
使用查询字符串上的否定前瞻作为前缀RewriteCond
,例如
RewriteCond %{QUERY_STRING} (?!query=9328)
RewriteRule ^$ http://www.seconddomain.com/ [R=301,L]
如果查询字符串包含模式,这将跳过重定向。如果您有有效的查询参数,例如otherquery
等,那么您可能希望使用\b
书挡锚定模式。
答案 1 :(得分:0)
这有效:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^$ http://www.seconddomain.com/ [R=301,L]
我不知道这是正确的还是最好的方式,但它会重定向索引,除非后面跟着查询字符串。