Die .htaccess steuert Apache-Einstellungen pro Verzeichnis. Sie liegt im Web-Root (/www/.htaccess) und wird bei jedem Request neu ausgelesen — Änderungen greifen sofort.
HTTPS erzwingen
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]www entfernen (auf non-www weiterleiten)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]Verzeichnis mit Passwort schützen
.htpasswdmithtpasswd -c /pfad/.htpasswd usernameerzeugen (oder Portal-Generator nutzen)- In
.htaccess:
AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /absoluter/pfad/.htpasswd
Require valid-userZugriff nach IP beschränken
Require ip 192.0.2.0/24
Require ip 203.0.113.42
Fehlerseiten anpassen
ErrorDocument 404 /custom-404.html
ErrorDocument 500 /custom-500.htmlDirektes Verzeichnis-Listing deaktivieren
Options -IndexesBandbreite schonen — Caching
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
Fallstrick: Syntax-Fehler
Ein falsches Zeichen in .htaccess bringt Ihre ganze Website mit 500 Internal Server Error zum Absturz. Immer nach Änderungen prüfen. Bei Problemen: .htaccess in .htaccess.bak umbenennen, dann Fehlermeldung ansehen und korrigieren.