Apache Rewrite Rules: Einzelne Pfadsegmente ersetzen

converge

New Member
Hallo zusammen,

ich stehe gerade etwas auf dem Schlauch.

Nach einem Website-Launch kann es sein, dass sich Pfadsegmente ändern.

Wie kann ich ganze Pfadsegmente per RewriteRule ersetzen?

Beispiel:
Alte URL: http://www.domain.xy/en/news/events/detail-page/name-des-events
Neue URL: http://www.domain.xy/en/news/event/detail/name-des-events

Mein Ansatz ist wie folgt:
Code:
RewriteCond %{REQUEST_URI} ^/en/news/events/detail-page/(.*)$
RewriteRule ^(.*)$ /en/news/event/detail/$1 [L,R=301]

Diese Regel funktioniert auch. Allerdings wird der neue Pfad vor den alten hinzugefügt. Der alte wird nicht überschrieben, was zu einer falschen URL führt:
http://www.domain.xy/en/news/event/detail/en/news/events/detail-page/name-des-events

Wie ändere ich die Regel ab, so dass dieser Pfadsegment entfällt?

Vielen Dank für eure Tipps.
 
Es soll ja die erste Regex-Gruppe aus RewriteCond angehängt werden, oder?
Also %1.

Code:
RewriteCond %{REQUEST_URI} ^/en/news/events/detail-page/(.*)$
RewriteRule ^(.*)$ /en/news/event/detail/%1 [L,R=301]

$1 bezieht sich nämlich auf die erste RegEx-Gruppe von RewriteRule, also von ^(.*)$.
 
Last edited by a moderator:
Back
Top