Zurück zu den Tools

.htaccess-Generator

Aktiviere die benötigten Regelblöcke — Weiterleitungen, HTTPS, Fehlerseiten, Passwortschutz, Security-Hardening, Caching — und setze sie zu einer geordneten .htaccess-Datei zusammen. Jedes Feld wird als reiner Text gerendert, sodass nichts, was du hier eingibst, jemals ausgeführt wird.

Weiterleitungen

301-/302-URL-Weiterleitungen

Leite einen alten Pfad auf einen neuen um. Läuft vor dem Front-Controller-Catch-all, damit PHP-App-Routing diese nie verschluckt.


Schema & Host

HTTPS erzwingen & www-Kanonisierung

Eine Website sollte genau unter einem Schema und einem Host antworten. Alles andere sollte dorthin weiterleiten.

www ⇄ ohne www

Fehler

Benutzerdefinierte Fehlerseiten

Zeige deine eigene Seite statt Apaches Standard, wenn eine Anfrage 404 liefert, verboten ist oder der Server abwürgt.

Zugriffskontrolle

Verzeichnis mit Passwort schützen

Basic Auth direkt durch Apache — ein Login-Prompt vor einem Ordner, ganz ohne Anwendungscode.

Absicherung

Security-Hardening

Kleine Direktiven, die häufige, tatsächlich ausgenutzte Fehlkonfigurationen schließen.

Performance

Kompression & Browser-Caching

Zwei unabhängige Vorteile: kleinere Antworten bei der Übertragung, und wiederkehrende Besucher überspringen den Request komplett.

Bandbreite

Hotlink-Schutz

Verhindere, dass andere Seiten deine Bilder direkt einbetten und deine Bandbreite verbrauchen, indem der Referer-Header geprüft wird.

PHP-Apps

Front-Controller-Rewrite

Leitet jede Anfrage, die keine echte Datei oder kein echter Ordner ist, an eine PHP-Datei weiter, damit der eigene Router der App entscheidet, was damit passiert.

Zusammengesetzte Datei

.htaccess

Rewrite-Regeln laufen innerhalb eines Engine-Blocks von oben nach unten, in dieser Reihenfolge:

  1. HTTPS erzwingen

Zusammengesetzte .htaccess

# .htaccess — composed with Wespner's .htaccess Generator
# Review before deploying: https://wespner.eu/tools

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Force HTTPS
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

# Custom error pages
ErrorDocument 404 /errors/404.html

# Block access to dotfiles (.git, .env, .htpasswd, ...)
<IfModule mod_authz_core.c>
    <FilesMatch "^\.">
        Require all denied
    </FilesMatch>
</IfModule>

# Disable directory listing
Options -Indexes

# Disable the Apache version banner on error pages
ServerSignature Off

Auf nginx? .htaccess bewirkt nichts.

Das ist ein reiner Apache-Mechanismus, und selbst auf Apache ist er oft deaktiviert (AllowOverride None), weil die Prüfung bei jeder Anfrage langsam ist. Nginx braucht die entsprechenden Regeln stattdessen direkt in einem Server-Block. Diese in eine Nginx-Config umwandeln

Betreibst du einen eigenen Gameserver?

Wespner-Gameserver mit DDoS-Schutz, NVMe-Laufwerken und Aktivierung innerhalb von Minuten.

Hosting ansehen