.htaccess Tipps & Tricks | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Htaccess Tipps Tricks Anleitung

Zuletzt aktualisiert: 11.01.2026 um 10:21 Uhr

.htaccess Tipps & Tricks

Die .htaccess-Datei ist ein mächtiges Werkzeug zur Konfiguration von Apache-Webservern. Mit ihr können Sie Weiterleitungen einrichten, Caching optimieren, Zugriffe schützen und vieles mehr - ohne Zugriff auf die Server-Konfiguration.

Grundlagen

Die .htaccess-Datei:

  • Liegt im Webroot oder in Unterverzeichnissen
  • Wird bei jedem Request ausgelesen
  • Einstellungen gelten für das Verzeichnis und alle Unterverzeichnisse
  • Erfordert AllowOverride All in der Apache-Konfiguration
💡 Tipp: Erstellen Sie vor Änderungen immer ein Backup: cp .htaccess .htaccess.backup

Weiterleitungen (Redirects)

Einfache Weiterleitungen

# 301 Permanent Redirect (für SEO empfohlen)
Redirect 301 /alte-seite.html https://example.com/neue-seite.html

# 302 Temporary Redirect
Redirect 302 /temp-seite.html https://example.com/andere-seite.html

# Komplettes Verzeichnis weiterleiten
Redirect 301 /blog/ https://example.com/news/

Mit mod_rewrite

RewriteEngine On

# HTTP zu HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# www zu non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# non-www zu www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

# Trailing Slash entfernen
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

# Trailing Slash hinzufügen
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

URL-Parameter weiterleiten

# Parameter an neue URL anhängen
RewriteRule ^produkt/(.*)$ /shop/item/$1 [R=301,L,QSA]

# Parameter entfernen
RewriteRule ^(.*)$ /$1? [R=301,L]

Sicherheit

Verzeichnisschutz mit Passwort

# .htaccess
AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /pfad/zur/.htpasswd
Require valid-user

Passwort-Datei erstellen:

htpasswd -c /pfad/zur/.htpasswd benutzername

Dateien und Verzeichnisse schützen

# Zugriff auf bestimmte Dateien verweigern
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|sql)$">
    Order Allow,Deny
    Deny from all
</FilesMatch>

# wp-config.php schützen
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>

# Verzeichnis-Listing deaktivieren
Options -Indexes

# Zugriff auf versteckte Dateien verweigern
<FilesMatch "^\.">
    Order Allow,Deny
    Deny from all
</FilesMatch>

IP-basierte Zugriffskontrolle

# Nur bestimmte IPs erlauben
Order Deny,Allow
Deny from all
Allow from 192.168.1.100
Allow from 10.0.0.0/24

# Bestimmte IPs blockieren
Order Allow,Deny
Allow from all
Deny from 123.456.789.0

# wp-admin nur für bestimmte IPs
<Files wp-login.php>
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.100
</Files>

Security Headers

<IfModule mod_headers.c>
    # XSS-Schutz
    Header set X-XSS-Protection "1; mode=block"
    
    # Clickjacking verhindern
    Header set X-Frame-Options "SAMEORIGIN"
    
    # MIME-Type Sniffing verhindern
    Header set X-Content-Type-Options "nosniff"
    
    # Referrer Policy
    Header set Referrer-Policy "strict-origin-when-cross-origin"
    
    # Content Security Policy (anpassen!)
    Header set Content-Security-Policy "default-src 'self';"
    
    # HSTS (Vorsicht - nicht ohne HTTPS!)
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>

Caching & Performance

Browser-Caching aktivieren

<IfModule mod_expires.c>
    ExpiresActive On
    
    # Standardwert
    ExpiresDefault "access plus 1 month"
    
    # HTML
    ExpiresByType text/html "access plus 0 seconds"
    
    # CSS und JavaScript
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    
    # Bilder
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"
    ExpiresByType image/x-icon "access plus 1 year"
    
    # Fonts
    ExpiresByType font/woff2 "access plus 1 year"
    ExpiresByType font/woff "access plus 1 year"
    ExpiresByType font/ttf "access plus 1 year"
    
    # PDF und andere
    ExpiresByType application/pdf "access plus 1 month"
</IfModule>

GZIP-Komprimierung

<IfModule mod_deflate.c>
    # Komprimierung aktivieren
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE image/svg+xml
    
    # Browser-Bugs umgehen
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

Fehlerseiten

# Eigene Fehlerseiten definieren
ErrorDocument 400 /fehler/400.html
ErrorDocument 401 /fehler/401.html
ErrorDocument 403 /fehler/403.html
ErrorDocument 404 /fehler/404.html
ErrorDocument 500 /fehler/500.html
ErrorDocument 503 /fehler/503.html

URL-Umschreibung

Schöne URLs (Pretty URLs)

RewriteEngine On

# example.com/produkt/123 → example.com/produkt.php?id=123
RewriteRule ^produkt/([0-9]+)/?$ produkt.php?id=$1 [L,QSA]

# example.com/kategorie/elektronik → example.com/kategorie.php?name=elektronik
RewriteRule ^kategorie/([a-zA-Z0-9-]+)/?$ kategorie.php?name=$1 [L,QSA]

# Dateiendung .php verstecken
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

Häufige Probleme

Problem Lösung
500 Internal Server Error Syntax prüfen, mod_rewrite aktiviert?
Redirect-Schleife RewriteCond hinzufügen um Endlos-Loops zu verhindern
Regeln werden ignoriert AllowOverride All in Apache-Config prüfen
.htaccess nicht sichtbar Versteckte Dateien im FTP-Client anzeigen
⚠️ Wichtig: Bei Nginx funktioniert .htaccess nicht! Nginx verwendet eine eigene Konfigurationssyntax.

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120