Tipps und Tricks

Wohin gehören .htacces-Dateien?

Du kannst .htaccess-Dateien prinzipiell in jedes Verzeichnis deines Web-Projektes ablegen. Dabei musst du jedoch etwas wissen: Die Regeln werden auch für jedes Unterverzeichnis "weitervererbt". Das heisst also: Liegt die .htaccess Datei im root-Verzeichnis, werden die Regeln darin im ganzen Projekt angewendet.

👉 Tipp 1

Verteile .htaccess-Dateien mit Weiterleitungen nicht überall in deinem Projekt, auch wenn das technisch gesehen funktioniert. Es ist übersichtlicher, dies zuoberst im root festzuhalten.

Frust beim Entwickeln einschränken

Wenn du mit PHP arbeitest, bist du es gewohnt, deine Errors sofort im Browser serviert zu bekommen. Für JavaScript-Menschen steht die extrem praktische Entwickler-Konsole zur Verfügung. Beim Entwickeln von .htaccess läuft das anders, weil in dieser Welt "von Natur aus" keine Konsole o.ä. zur Verfügung steht. Machst du Syntaxfehler oder logische Fehler in der .htaccess-Datei, wird ein serverseitiger 500-Fehler ausgelöst, der in der Ausgabe einer allgemeinen Fehlerseite endet. Dort findest du keine Hinweise darauf, was und wo genau der Auslöser des Fehlers war, und das ist auch gut so. Deshalb mein Tipp 2.

👉 Tipp 2

Mache dich vertraut mit den Error-Logs auf dem Server, bevor du loslegst! Hier brauchst du die Fehlermeldungen von Apache selber. Bei MAMP findest du das Helferlein hier:
MAMP/logs/apache_error.log
Bei den meisten Providern steht dir das Log-File im Admin-Bereich zur Verfügung.

👉 Tipp 3

Mache dich vertraut mit Pfaden, und zwar bei dir lokal und auf dem Server, wo dein Projekt schlussendlich zu liegen kommt. Das ist Herausforderung, die es bewältigen gilt. Auch ich habe immer wieder zu kämpfen damit, obwohl ich doch einige Jahre Erfahrung mit Webentwicklung auf dem Buckel habe. Manchmal muss man den Pfad vom Document Root (einem Verzeichnis, das oberhalb des "Webspace" liegt) aus kennen:

<?php
echo $_SERVER["DOCUMENT_ROOT"];
?>


Für Nerds

.htaccess vs. httpd.conf

Ein Nerd wird sagen: Das ist alles schön und gut, aber all das Zeugs im .htaccess kann man ja auch in der Konfigurationsdatei auf dem Webserver machen.
Das stimmt natürlich, aber (das grosse "Aber"): Solange du ein günstiges Shared Hosting-Abo bei deinem Provider hast, wirst du kaum Zugang zu der httpd.conf haben. Es bleibt dir also gar nichts anderes übrig, als mit .htaccess zu arbeiten.

Unterschiede bei der Anwendung:

Änderungen von .htacces-Dateien treten sofort in Kraft, bei Änderungen in der httpd.conf muss der Server neu gestartet werden, damit Sie greifen. .htaccess-Befehle verlangsamen den Request ein wenig, der Geschwindigkeitsverlust ist aber nicht gravierend. Hat dein Projekt zum Schluss wirklich zu lange Ladezeiten, wird das höchstwahrscheinlich andere Gründe haben.