diff --git a/public/.htaccess b/public/.htaccess index b1ba1df..c8e1da5 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,18 +1,20 @@ RewriteEngine On -# 0) Echte Dateien oder Ordner direkt ausliefern (wichtig für CSS/JS/Bilder) +# 0) Echte Dateien und Ordner direkt ausliefern RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] -# 1) /test/eins -> /test/eins.php (wenn existiert) +# 1) /foo/bar -> foo/bar.php +# Nur wenn REQUEST_FILENAME KEIN Verzeichnis ist (!!) +RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f -RewriteRule ^(.+)$ $1.php [L] +RewriteRule ^(.+?)/?$ $1.php [L] -# 2) /test/eins -> /test/eins/index.php (wenn existiert) +# 2) /foo/bar -> foo/bar/index.php +# Wieder nur wenn KEIN Verzeichnis (!!) +RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}/index.php -f -RewriteRule ^(.+)$ $1/index.php [L] +RewriteRule ^(.+?)/?$ $1/index.php [L] -# 3) Wenn nichts davon zutrifft: -# Apache versucht, die URL normal zu bedienen → keine Datei → 404. -# (Kein extra Rewrite nötig) +# 3) Wenn nichts passt -> nichts rewrite’n → Apache liefert normalen 404