Jörgs Webnotizen

Zeichenfolge ^/? in einer RewriteRule

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

Kommentar schreiben

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Kommentare werden erst nach Freischaltung veröffentlicht