ウェブサイトのURL名がSEOの理由で変更されました。それがあった:今mod_rewrite 301古いURLから新しいURLにリダイレクト
/category/filter1/f00/filter2/123/filter3/100-500/filter4/36.html
:
/category/color/red/size/big/price/100-500/style/classic.html
私は古いものと新しい名前を知って、彼らは固定しています。古いURLから新しいURLに301リダイレクトされるリライトルールを作成するのを手伝ってください。私は研究を行いました。例えば、RewriteMapを使って作ることができないことが分かりましたので、
RewriteRule (.*)filter1(.*) $1color$2 [L]
などのようなものを作ってしまいました。私は見た目が気に入らないだけでなく、301リダイレクトもしません。
UPDATE:現時点では私は、フィルタの名前/値ごとに1つ、例えば、いくつかのルールを持っていることを注:
RewriteEngine on
# make sure it's a catalog URL, not anything else
RewriteCond %{REQUEST_URI} !^/(category1|category2|category3|category4)
RewriteRule .* - [L]
# rewrite filter names
RewriteRule (.*)filter1(.*) $1color$2 [L]
RewriteRule (.*)filter2(.*) $1price$2 [L]
...etc...
それ期待通りに動作します - URL内のすべての名前を変更しますが、R
フラグを設定します最初のルールで停止し、次のようなURLにリダイレクトされます。
/var/www/vhosts/site/htdocs/category/color/red/filter2/123/ etc...
フィルタがURLに存在する場合と存在しない場合があるため、ルールが分かれています。より良い解決法を大いに歓迎します。
涼しい、非常に建設的なアプローチ! –