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.