Clean URLs für technikum29.de
Seit t29v6 nutzt die technikum29.de-Website saubere URLs. Das PHP-basierte t29v6-System kann dabei URLs ohne php-Suffix generieren, welche vom Webserver wieder zurück auf reale Dateien gemappt werden. Dabei wird gleichzeitig die Konsistenz mit alten Links auf die .shtm-Dateiendungen von t29v5 sichergestellt, da nun alle Ressourcen à la
http://www.technikum29.de/de/foo.shtm
http://www.technikum29.de/de/foo.shtml
http://www.technikum29.de/de/foo.php
Weitergeleitet werden auf
und verarbeitet werden von foo.php.
Apache-Konfiguration
Statt einer mod_rewrite-basierten Lösung wurde sich für eine Lösung mit Apache Multiviews und einem gut konfigurierbarem 404-Handler entschieden. Letzterer übernimmt auch das Mapping der alten .shtm-Links sowie verschobener Geräte-Seiten.
Multiviews schien als einzige Lösung brauchbar, da per mod_rewrite nicht die Existenz einer Datei ohne Dateiendung festgestellt werden kann, sondern nur einer Datei mit einem Suffix.
Die Multiviews-basierte Lösung hat den Nachteil, dass mod_speling nicht mehr verwendet werden kann. Die Apache-Konfiguration reduziert sich auf
# Multiviews ist die Alternative zur RewriteRule, die foo ohne # Suffix cacht. foo.php leitet auf PHP-Level auf foo weiter (siehe # ENV unten). Options +MultiViews # Speling macht foo.shtm -> 300 multiple choices # Soll aber per 404 gecacht werden und auf foo.php weiterleiten, # falls existent. #CheckSpelling on AllowOverride None RewriteEngine On # ENV-Var um php-Endungen wegzustrippen (hier mit multiviews) SetENV T29URLHIDESUFFIX True
Wichtig ist vor allem die Environment-Variable, anhand der das t29v6-System erkennt, dass es die Dateiendungen wegstrippen kann. Das wird vor allem von der Datei host.php erledigt.