0

次のように、いくつかの 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?

しかし、この 2 つの URL はすべて最初のブロックでキャッチされ、リダイレクトは常にhttp://domain.com/catalog/paz-320412-vektor.htm

私は何を間違っていますか?

4

1 に答える 1

0

ここにはいくつか問題があります。まず、 %{QUERY_STRING}$に一致する式のシンボルをエスケープする必要があります。これは予約済みのシンボルです (後方参照などのため)。2 つ目は、 a は aに影響しないことです。書き換えディレクティブは mod_rewrite の一部であり、リダイレクト ディレクティブは mod_alias の一部です。書き換え条件をリダイレクトに関連付けることはできません。次を使用する必要があります。RewriteCondRedirectPermanentRewriteRule

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]
于 2012-07-11T17:43:54.790 に答える