Zum Hauptmenü

Zeichenfolge ^/? in einer RewriteRule

Jörg Kruse

Hin und wieder begegnen einem in mod_rewrite Anleitungen Pattern, in welchen nach dem Delimiter ^ als erstes ein Slash und ein Fragezeichen folgen, z.B.:


RewriteRule ^/?foo$ https://example.com/bar [L,R=301]

Aufgrund des folgenden Fragezeichen ist der Slash am Anfang (der „heading Slash“) optional. Da in einer RewriteRule in der .htaccess Datei den URL-Pfaden grundsätzlich der heading Slash fehlt, kann man diese beiden Zeichen dort auch weglassen:


RewriteRule ^foo$ https://example.com/bar [L,R=301]

Anders verhält es sich allerdings in einer VirtualHost-Konfiguration des Apaches, außerhalb eines Directory-Containers: hier enthält ein URL-Pfad den beginnenden Slash, folglich muss dieser im Pattern auch angegeben werden:


RewriteRule ^/foo$ https://example.com/bar [L,R=301]

Ein Pattern „^/?foo$“ macht folglich Sinn in Anleitungen, die portabel sein sollen, d.h. sowohl in .htaccess Dateien als auch in den VirtualHost-Konfigurationsdateien des Webservers funktionieren sollen.

Tags: Apache

Die Kommentarfunktion wurde nach 180 Tagen automatisch geschlossen.
Fragen zu diesem Thema können auch in meinen Webmaster-Forum gestellt werden: