2016-12-01 3 views
1

ich eine Rewrite-Regel für die folgenden Seiten benötigen:Rewrite-Regel für mehrere Seiten auf eine Seite

/blog/2015/09/05/name-of-page.html 
/old-category-name/name-of-page/ 
/old-category-name/name-of-page 

Alle müssen/neu-Kategorie-name/name-of-Seite/

umleiten Aber es könnte auch Dateinamen wie /alter-Kategorie-Name/Name-der-Seite-zwei, die umleiten würde/new-Kategorie-name/Name der Seite-zwei/

Ich kam mit dem folgenden Regex:

(\blog\/\[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/|old-category-name)\/\/name-of-file(\.html|\.htm|\/|\s) 

Es arbeitet in Regex Pal, aber die folgende Umleitung in meiner .htaccess-Datei nicht funktioniert:

Rewrite Rule (\blog\/\[0-9]{4}\/[0-9]{2}\/[0-9]{2}\/|old-category-name)\/\/name-of-file(\.html|\.htm|\/|\s) http://example.com/new-category-name/name-of-file/ 

jemand mir einen Rat geben? Vielen Dank!

Antwort

0

Sie benötigen eine regex und die allgemeine Syntax zu beheben:

RewriteEngine On 

RewriteRule ^(?:blog/\d{4}/\d{2}/\d{4}|old-category-name)/(name-of-page)(?:\.html|/)?$ /new-category-name/$1/ [L,NC,R=301] 
+1

Hallo, gerade Ihren Kommentar heute Abend gesehen und wird aus dem Büro von morgen sein. Ich werde das ausprobieren und meine Kommentare am Samstag hinterlassen Danke! – user1388610

+0

Ich überarbeitete deine ein bisschen – user1388610

+1

Hoppla ... Entschuldigung, es hat so lange gedauert, bis ich darauf zurück kam! Ich habe deine Datei ein wenig überarbeitet, um dem Schrägstrich vor dem Seitennamen zu entkommen, und habe das letzte Bit auf (?: \. Html | \/| \ s) geändert. Ich glaube, du hast diese nur knapp verpasst. Es klappt!! :-) – user1388610