2012-07-11 157 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]