Website hat seine URL-Namen aus SEO-Gründen, z. es war:mod_rewrite 301 Umleitung von alten URLs zu neuen
/category/filter1/f00/filter2/123/filter3/100-500/filter4/36.html
jetzt:
/category/color/red/size/big/price/100-500/style/classic.html
Ich kenne die alten und neuen Namen, sind sie fixiert. Bitte helfen Sie mir, eine Rewrite-Regel zu erstellen, die dazu führt, dass 301 von alten URLs zu neuen umgeleitet wird. Ich habe recherchiert, und ich sehe, dass ich es nicht mit RewriteMap zum Beispiel schaffen kann, also habe ich so etwas wie RewriteRule (.*)filter1(.*) $1color$2 [L]
usw. gemacht. Nicht nur mag ich nicht, wie es aussieht, aber es gibt mir auch keine 301-Weiterleitung.
UPDATE: Beachten Sie, dass ich habe mehrere Regeln in dem Moment, eine pro Filter Name/Wert, zB:
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...
Es funktioniert wie erwartet - Ändern alle Namen in URL, aber Einstellung R
Flagge bewirkt, dass der Anschlag auf erster Regel und Umleitung URL wie:
/var/www/vhosts/site/htdocs/category/color/red/filter2/123/ etc...
I Regeln getrennt, weil jede von Filtern in der URL oder nicht vorhanden sein kann. Ich werde die bessere Lösung sehr schätzen.
Cool, sehr konstruktive Vorgehensweise! –