301重定向问题

时间:2012-07-11 13:00:47

标签: .htaccess redirect

我需要制作一些301重定向,如下所示:

/!go?ln=vector.dpsp&refs_=&m$id=27007&m$mid=27013    to  http://domain.com/catalog/paz-320412-vektor.htm
/!go?ln=1223-15-57-1223.html&m$id=27148&m$mid=27940  to   http://domain.com/catalog/gruzoviki/sedelnie-tyagachi-man

我在.htaccess中尝试了这段代码:

RewriteCond %{QUERY_STRING} ln=vector.dpsp&refs_=&m$id=27007&m$mid=27013
RedirectPermanent   /!go    http://domain.com/catalog/paz-320412-vektor.htm? 

RewriteCond %{QUERY_STRING} ln=1223-15-57-1223.html&m$id=27148&m$mid=27940
RedirectPermanent   /!go    http://domain.com/catalog/gruzoviki/sedelnie-tyagachi-man?

但所有这两个网址都是第一个阻止,重定向总是进入http://domain.com/catalog/paz-320412-vektor.htm

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这里有一些问题。首先,您需要转义表达式中与{strong>%{QUERY_STRING} 匹配的$符号,它是一个保留符号(用于反向引用等内容)。第二件事是RewriteCond不会影响RedirectPermanent。重写指令是mod_rewrite的一部分,Redirect指令是mod_alias的一部分,你不能将重写条件绑定到重定向,你需要使用RewriteRule

RewriteCond %{QUERY_STRING} ln=vector.dpsp&refs_=&m\$id=27007&m\$mid=27013
RewriteRule ^\!go$ http://domain.com/catalog/paz-320412-vektor.htm? [R=301,L] 

RewriteCond %{QUERY_STRING} ln=1223-15-57-1223.html&m\$id=27148&m\$mid=27940
RewriteRule ^\!go$ http://domain.com/catalog/gruzoviki/sedelnie-tyagachi-man? [R=301,L]