Was ist eine .htaccess‑Datei?
Die .htaccess ist eine Konfigurationsdatei für den Apache‑Webserver.
Damit können Kunden ohne Serverzugriff wichtige Einstellungen direkt im Webverzeichnis vornehmen, z. B.:
- Weiterleitungen
- Passwortschutz
- URL‑Umschreibungen (Rewrite)
- Sicherheitseinstellungen
- Caching
Sie liegt meist im Ordner /httpdocs oder /public_html.
1. .htaccess für einfache Webprojekte
Für statische Websites oder kleine PHP‑Projekte reicht oft eine sehr schlanke .htaccess.
Beispiel: Basis‑.htaccess
# Aktiviert mod_rewrite
RewriteEngine On
# Leitet www auf non-www um (optional)
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
# Standard-Indexdatei
DirectoryIndex index.php index.html
# Sicherheit: Verhindert Zugriff auf sensible Dateien
<FilesMatch "\.(env|ini|log|sh|sql)$">
Order allow,deny
Deny from all
</FilesMatch>
Einsatz:
- Kleine Websites
- PHP‑Projekte
- Landingpages
- Statische HTML‑Seiten
2. .htaccess für moderne PHP‑Projekte (z. B. Frameworks)
Viele Frameworks wie Laravel, Symfony oder Slim benötigen „saubere URLs“.
Beispiel: Clean‑URL‑Rewrite
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
Einsatz:
- PHP‑Frameworks
- REST‑APIs
- Single‑Page‑Applications mit PHP‑Backend
3. .htaccess für WordPress
WordPress bringt eine eigene Standard‑.htaccess mit, die für 99 % aller Installationen ausreicht.
WordPress‑Standard‑.htaccess
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Wichtig:
- Diese Datei wird von WordPress automatisch verwaltet
- Kunden sollten sie nur ändern, wenn sie wissen, was sie tun
- Bei Permalink‑Problemen hilft oft:
Einstellungen → Permalinks → Speichern
4. Erweiterte Sicherheit für WordPress
Viele WordPress‑Admins ergänzen die .htaccess um Sicherheitsregeln.
Beispiel: wp‑config schützen
<files wp-config.php>
order allow,deny
deny from all
</files>
Beispiel: XML‑RPC deaktivieren
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
Beispiel: Uploads absichern
<Directory "/wp-content/uploads/">
<FilesMatch "\.(php|php5|php7|phtml)$">
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
5. Caching & Performance (optional)
Für schnellere Ladezeiten:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
</IfModule>
6. Häufige Fehlerquellen
|
Problem |
Ursache |
Lösung |
|
500 Internal Server Error |
Syntaxfehler in .htaccess |
Datei prüfen, letzte Änderung rückgängig machen |
|
Rewrite funktioniert nicht |
mod_rewrite deaktiviert |
Bei MR‑Host immer aktiv |
|
WordPress‑Permalinks kaputt |
.htaccess fehlt oder falsch |
WordPress → Permalinks speichern |
|
Zugriff verweigert |
Falsche Rechte |
.htaccess = 644 |
Empfehlung für die Anwendung
- Für einfache Websites → Basis‑.htaccess
- Für WordPress → Standard‑WordPress‑.htaccess
- Für Performance → Caching‑Regeln
- Für Sicherheit → Schutzregeln ergänzen
MR‑Host‑Server unterstützen alle genannten Funktionen vollständig.