Hinweise
.htaccess-Datei
Eine .htaccess-Datei ist keine PHP-Datei, sondern eine Steuerdatei für den Webserver, und im Zusammenhang mit PHP ist es vorteilhaft, diese zu wissen und sie zu verstehen.
Eine .htaccess-Datei ist eine Konfigurationsdatei, die auf Apache-Webservern verwendet wird, um das Verhalten von Webseiten zu steuern. Sie ermöglicht es, verschiedene Einstellungen für einzelne Verzeichnisse oder Dateien auf einer Website festzulegen, ohne den Server direkt konfigurieren zu müssen.
In jedem Verzeichnis darf – muss jedoch nicht – eine .htaccess-Datei stehen. Es gilt diejenige Datei, die im aufgerufenen Verzeichnis steht. Die Datei gilt auch für die Unterverzeichnisse, wenn im Unterverzeichnis keine solche Datei steht.
Wenn Du etwa die .htaccess-Datei im Wurzelverzeichnis (root) platzierst und sonst keine solche Datei in einem Unterverzeichnis stehen hast, gilt die Datei im Wurzelverzeichnis überall.
Beispiel 1: Alle Aufrufe auf root/index.php umleiten-
RewriteEngine On
RewriteRule ^ index.php
Beispiel 2: Alle Aufrufe auf existierende Dateien in root/public, sonst auf root/public/index.php umleiten.
Lege folgende .htaccess-Datei im Ordner root ab. Sie leitet alle Anfragen auf root/public um. $1 steht für den Inhalt in den Klammern.
RewriteEngine On
RewriteRule (.*) public/$1
Dann lege folgende .htaccess-Datei im Ordner public ab. Sie leitet alle Anfragen auf index.php um, wenn $1 nicht existiert. Sonst leitet sie auf das Unterverzeichnis und die Datei in $1 weiter.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond
%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule
^ index.php
Das zweite Beispiel schaltet etwa den Aufruf von img/logo.png frei, wenn die Datei in root/public/img/logo.png zu finden ist.
Wichtig! Alles, was nicht im direkten Zugriff sein darf, gehört in das root-Verzeichnis oder in ein Unterverzeichnis, etwa root/src.
