2012-07-11 155 views
0

我需要做一些301重定向,像这样:问题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 tryed验证码:

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

我在做什么错了?

回答

0

这里有一些错误。首先,您需要在符合%{QUERY_STRING}的匹配表达式中转义$符号,它是一个保留符号(用于像反向引用之类的内容)。第二件事是RewriteCond不影响RedirectPermanent。重写指令是mod_rewrite的的一部分,并且重定向指令是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]