Konvertierung von URLs zu lowercase mit Hilfe von mod_rewrite

Erst neulich bin ich wieder einmal das Problem gestolpert, das eine URI mit einem Großbuchstaben am Anfang einen 404 verursachte. Das istnatürlich ärgerlich wenn User eure Seite nutzen wollen und die URL zu bestimmten Locations selbst eingeben.

Man bräuchte also eine Funktion, die URIs entsprechend zu ihren lowercase Varianten umschreibt.

Kurz in der Dokumentation von mod_rewrite nachgeschlagen und man wird fündig: RewriteMap ist das Zauberwort. Damit kann man statt einzelnenRegeln eine ganze map mit Regeln für etwas übernehmen. Und das beste daran: eine tolower-Funktion gibt es auch noch.

Das ganze in Code sieht dann folgendermaßen aus:

RewriteMap tolower int:tolower
RewriteRule  ^([^/]+)/?$ somedir/${tolower:$1}

Das ganze hat allerdings einen kleinen Haken: man muss den Code in die Serverconfig bzw. den VirtualHost schreiben, in der .htaccess Datei ist die RewriteMap nicht zulässig. Außerdem ist natürlich Voraussetzung, das mod_rewrite überhaupt ersteinmal aktiviert ist. Wer also nur ein einfaches Webhosting Paket hat, bei dem er diese Einstellungen nicht vornehmen kann, wird diese Funktion nicht nutzen können.






Proudly powered by Microsoft IIS, Visual Basic .NET and DHTML. NOT.
Copyright © MKzero 2013
License Info