25. Februar 2023
4 praktische .htaccess-Snippets
Die .htaccess-Datei kann verwendet werden, um viele verschiedene Aspekte der Website-Verwaltung zu steuern, z.B. die Umleitung von URLs, die Konfiguration von Caching, die Aktivierung von Kompression, die Anzeige von Fehlermeldungen und vieles mehr.
Im Folgenden möchte ich ein paar praktische Anwendungsbeispiele zeigen.
Den Inhalt folgender htaccess-Datei nutze ich standard-mäßig auf fast allen Websites – inbesondere aber auf statischen HTML-Websites. Hierbei wird das Caching optimiert und die Komprimierung aktiviert. Heißt: Im Idealfall sollte die Website hierdurch schneller werden. Damit beim User möglichst immer die aktuellsten Inhalte angezeigt werden sind html, css & js vom Caching ausgeschlossen. Außerdem werden die Fehlerseiten definiert, es wird von „domain.de“ auf „www.domain.de“ und von „http“ auf „https“ umgeleitet.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/ico "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/jpg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
#ExpiresByType text/css "access plus 7 days"
#ExpiresByType text/javascript "access plus 7 days"
#ExpiresByType application/javascript "access plus 7 days"
</IfModule>
# compression
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
<FilesMatch ".(html|css|js)$">
Header set Cache-Control: "max-age=0, no-store"
</FilesMatch>
ErrorDocument 403 https://www.XXXXXX.de/error.html
ErrorDocument 500 https://www.XXXXXX.de/error.html
ErrorDocument 404 https://www.XXXXXX.de/error.html
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Code-Sprache: PHP (php)
XML-RPC-Anfragen blockieren
Folgendes Snippet sollte eigentlich in keiner htaccess-Datei einer WordPress-Seite fehlen. Mit folgendem Code werden die XML-RPC-Anfragen blockiert. XML-RPC ist eine Schnittstelle, die es Drittanwendungen ermöglicht, mit WordPress zu kommunizieren. Wenn sie nicht ordnungsgemäß gesichert ist, kann sie von Angreifern ausgenutzt werden, um unerlaubten Zugriff auf das System zu erlangen oder DDoS-Angriffe durchzuführen. Wenn du die Schnittstelle also nicht explizit nutzt, sollte sie blockiert werden. Das steigert die Sicherheit und auch die Leistung deiner Website.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Code-Sprache: HTML, XML (xml)
Verzeichnis schützen
Mit folgendem Snippet werden alle Zugriffsanfragen von Benutzern auf das entsprechende Verzeichnis oder die Dateien blockiert. Dies kann nützlich sein, um die Sicherheit von sensiblen oder vertraulichen Dateien zu erhöhen. Z.B. auch im Falle einer SleekDB-Datenbank.
# Verzeichnis schützen
Deny from all
Code-Sprache: PHP (php)
Weiterleitung bei Website-Relaunch
Wenn sich bei einem Website-Relaunch, oder aus anderem Grund, die URLs bestimmter Seiten ändern, sollten im Idealfall Weiterleitungen eingerichtet werden um zu verhindern, das Besucher der Website nicht auf einer Fehlerseite landen. Mit folgendem Snippet lässt sich eine Weiterleitung realisieren.
RedirectPermanent /alte-seite.html https://www.loremipsum.de/neue-seite.html
Code-Sprache: JavaScript (javascript)