Schöne Einstellungen und schöner ohne Einstellungen

Apache HTTP-Server Der Open-Source-Web-Server ist auch wegen seiner vielfältigen Konfigurationsoptionen sehr beliebt.

Betreiber von Webseiten kennen sie: .htaccess-Dateien. Einfach ausgedrückt sind das Konfigurationsdateien für den Webserver. Der Clue daran ist, dass die Einstellungen für das Verzeichnis gelten in dem die Datei liegt. Das macht htaccess besonders für Shared-Hosting interessant: dadurch kann jeder Kunde die Einstellungen des Webservers für sich anpassen ohne die anderen Kunden zu stören oder der Administrator des Servers Hand anlegen muss.

Die manigfaltigen Möglichkeiten verführen leider auch dazu diese exzessiv zu nutzen. So hatte ich neulich ein ShopSytem in den Händen, in dem über achtzig .htaccess-Dateien lagen. Die meisten waren dazu da Verzeichnisse für den Zugriff übers Web zu sperren. Es gab aber auch ein paar, die mit komplexen ReWrite-Rules Anfragen umleiteten. Spätestens an diesem Punkt sollte sich der begabte Entwickler fragen, ob das eine gute Idee ist.

Zur ersten .htaccess-Anwendung, nämlich Dateien und Ordner für den Browser nicht verfügbar zu machen, kann ich nur sagen: was nicht ins Web gehört, gehört nicht ins Web! Anstatt umständlich den Zugriff zu verbieten, empfehle ich diese Dateien einfach auserhalbt des WebRoot zu speichern. Das spart viele .htaccess-Dateien, veringert die Komplexität und damit die Fehleranfälligkeit des Gesamtsystems. Auch die Konfiguration von ReWrite-Rules kann ich nicht gut heißen. Aber nicht nur ich, selbst in der Dokumentation von Mod_Rewrite wird aufgeführt, dass es für viele, viele Fälle bessere Lösungen gibt. So sind ReWrite-Rules als letzte Hoffnung beschrieben, wenn es sonst keine Möglichkeiten mehr gibt. So ist beispielsweise ein simpler "Alias" in jedem Fall einer komplexen ReWrite-Rule vorzuziehen - schon allein aus Performanzgründen. Darüber hinaus ist natürlich zuerst der Programmierer gefragt. So wage ich zu behaupten, dass allein durch eine halbwegs gute Softwarearchitektur und die Verwendung von PATH_INFO etc. auf ReWrite-Rules komplett verzichtet werden kann.

Ein weiterer Punkt, der wenig Beachtung findet, ist, dass durch .htaccess-Dateien und insbesondere durch den Gebrauch on ReWrite-Rules ein Teil der Applikationslogik in die Konfiguration des Web-Servers ausgelagert wird. Und spätestens jetzt sollten dem erfahrenen Entwickler alle Alarmglocken schrillen. Die Logik gehört in das Programm und nicht auf achtzig .htaccess-Dateien verteilt. Naja, zumindest sollte die Logik an einer - und nur einer - zentralen Stelle implementiert sein. Abhängigkeiten diser Art sorgen früher oder später für Probleme.

Ich will .htaccess-Dateien nicht verteufeln, rate aber jedem, der sich versucht sieht dieses Feature zu nutzen, diese Entscheidung vor dem jüngsten Gericht mit guten Gründen und reinem gewissen vertreten zu können.

19. Mär. 2020 (17:54) | gERD Schaufelberger

zur Liste

Suche

Aktuelle Artikel