Variable %{DOCUMENT_ROOT} in .htaccess nicht nutzbar

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 2 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet ...

Falls ihr das Plugin Cachify vom pluginkollektiv nutzt, dann wisst ihr ja alle, dass dafür die .htaccess angepasst werden muss. Die Weiterleitung auf die Cache-Datei passiert ja über den Server, so dass der PHP-Interpreter und die Datenbank nicht mehr genutzt werden muss. Dafür stellt das Plugin den Code in einem Reiter Setup zur Verfügung.

Das war nicht immer so. Früher gab es nur ein Snippet mit der Server-Variablen %{DOCUMENT_ROOT} und die ist nicht auf allen Servern nutzbar. Dazu gehören 1und1, Domaingo oder domainfactory. Wie kriege ich so einen Pfad heraus, wenn das Plugin mir den Code nicht direkt anbietet?

Die Apache-Direktive %{DOCUMENT_ROOT} steht für den vollständigen Serverpfad zum Hauptverzeichnis. Damit kann ein generisches Skript einfach via Copy&Paste aus der Dokumentation genutzt werden und bedarf keiner individuellen Anpassungen.

Mehrere Hoster unterbinden leider die Nutzung der DOCUMENT_ROOT-Direktive innerhalb von der .htaccess. Entsprechend funktionieren einige Weiterleitungsregel nicht, da der Pfad zu Dateien nicht stimmt. Daher müssen wir die Variable gegen eine individuelle, statische Pfadangabe ersetzen. Doch das ist leichter gesagt als getan.

Mit ein wenig PHP-Hilfe geht es dann doch ganz einfach. Diesen Snippet in eine PHP-Datei werfen (z.B. info.php) und auf dem Server aufrufen:

<?php echo rtrim($_SERVER['DOCUMENT_ROOT'], '/') ?>

Der ausgegebene Pfad kann dann kopiert und statt der Direktive (%{DOCUMENT_ROOT}) in der .htaccess benutzt werden.

Bei domainfactory gibt es noch einen anderen Weg den Pfad herauszubekommen. Im Hoster-Backend unter Verwaltung -> Auftragsinformationen -> und dann im Reiter Pfade. Dort findet sich ebenfalls der Basispfad für den Vertrag. Der Ordner für die jeweilige Website muss dann noch dahinter ergänzt werden.

Nun ist das Problem nicht mehr ganz so drängend, weil Cachify den Code inklusive der individuellen Pfade bereits ausgibt und zum Kopieren anbietet, aber es wäre schon interessant zu erfahren, warum manche Hoster diese Variable nicht anbieten und andere schon.

Falls jemand weiß woran das liegen könnte oder bei einem der Hoster arbeitet und es weiß, freue ich mich über aufschlussreiche Kommentare!


Dieser Artikel ist Teil der Serie: Hosting-Adventskalender
Alle Artikel findest du über das Schlagwort Adventskalender

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert