Clear-Site-Data für Apache

Clear-Site-Data auf dem Apache-Logout-Endpoint einrichten — mit Location-Block, mod_headers und .htaccess-Fallback zum Kopieren.

Apache · Schritt für Schritt

Clear-Site-Data auf Apache

Apache unterstützt Clear-Site-Data über das Modul mod_headers, das bei allen gängigen Hostern vorinstalliert ist. Der Header wird in einem <Location "/logout">-Block gesetzt — nicht global. Auf Shared Hosting ohne Zugriff auf die VirtualHost-Konfiguration können Sie den Header alternativ per PHP im Logout-Script setzen.

Clear-Site-Data bringt 3 von 166 Punkten im Wolf-Agents Web Security Check. Die Implementierung dauert unter 10 Minuten — eine Änderung in der Apache-Konfiguration oder wenige Zeilen PHP-Code.

1 Schritt 1 von 3

Location-Block für Logout erstellen

Erstellen Sie einen <Location>-Block in Ihrer VirtualHost-Konfiguration. Der Header always set stellt sicher, dass der Header bei allen Statuscodes gesetzt wird.

/etc/apache2/sites-available/ihre-domain.conf Logout
# Clear-Site-Data — nur auf dem Logout-Endpoint!
<IfModule mod_headers.c>
    <Location "/logout">
        Header always set Clear-Site-Data '"cache", "cookies", "storage"'
        Header always set Cache-Control "no-store"
    </Location>
</IfModule>
IfModule-Wrapper

Der <IfModule mod_headers.c>-Block stellt sicher, dass Apache die Direktiven ignoriert, falls mod_headers nicht geladen ist. Kein 500-Fehler, kein Risiko.

2 Schritt 2 von 3

.htaccess-Fallback mit mod_rewrite

Auf Shared Hosting ohne Zugriff auf die VirtualHost-Konfiguration können Sie mod_rewrite nutzen, um den Logout-Pfad auf eine Zwischenseite zu leiten. Setzen Sie Clear-Site-Data dann auf dieser Seite.

.htaccess Fallback
# Logout-Redirect mit Clear-Site-Data
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^logout$ /logged-out.html [L]
</IfModule>

<IfModule mod_headers.c>
    <Location "/logged-out.html">
        Header always set Clear-Site-Data '"cache", "cookies", "storage"'
    </Location>
</IfModule>
Apache 2.4+ erforderlich. Die Header-Direktive mit <Location>-Bedingungen erfordert Apache 2.4 oder neuer. Bei älteren Versionen setzen Sie den Header direkt im PHP-Logout-Script.
3 Schritt 3 von 3

Konfiguration testen

Prüfen Sie die Apache-Konfiguration auf Syntaxfehler und starten Sie den Server neu. Verifizieren Sie den Header mit curl oder den Browser DevTools.

Konfiguration prüfen und neu laden:
sudo apachectl configtest && sudo systemctl reload apache2
Header überprüfen:
curl -I https://ihre-domain.de/logout | grep -i clear
Auf Shared Hosting ohne Shell-Zugang: Setzen Sie header('Clear-Site-Data: "cache", "cookies", "storage"') direkt im PHP-Logout-Script. Das gibt Ihnen volle Kontrolle ohne Server-Neustart.

Wie steht Ihre Domain bei Clear-Site-Data?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Brauche ich mod_headers für Clear-Site-Data auf Apache?

Ja. Die Header-Direktive wird von mod_headers bereitgestellt. Das Modul ist bei allen gängigen Hostern (All-Inkl, Strato, IONOS) vorinstalliert. Der IfModule-Wrapper stellt sicher, dass Apache die Direktiven ignoriert, falls das Modul nicht geladen ist — kein 500-Fehler.

Kann ich Clear-Site-Data in der .htaccess setzen?

Ja, aber eingeschränkt. In der .htaccess können Sie den Header nicht auf einen bestimmten Pfad wie /logout beschränken, da Location-Blöcke in .htaccess nicht erlaubt sind. Nutzen Sie stattdessen eine If-Bedingung auf die Request-URI oder setzen Sie den Header in der VirtualHost-Konfiguration mit einem Location-Block.

Was ist der Unterschied zwischen Header set und Header always set?

Header set setzt den Header nur bei erfolgreichen Responses (2xx/3xx). Header always set setzt ihn bei allen Statuscodes — auch bei 4xx und 5xx. Für Clear-Site-Data auf dem Logout-Endpoint verwenden Sie immer always set, damit der Browser die Daten auch bei Fehler-Responses löscht.

Funktioniert Clear-Site-Data auf Shared Hosting mit Apache?

Ja, solange der Hoster mod_headers aktiviert hat (Standard bei den meisten Anbietern). Setzen Sie den Header per PHP-Code im Logout-Script statt per .htaccess, da Sie in .htaccess den Pfad nicht einschränken können. Ein PHP-header()-Aufruf gibt Ihnen volle Kontrolle über den Logout-Endpoint.

Wie kombiniere ich Clear-Site-Data mit mod_rewrite für einen Logout-Redirect?

Nutzen Sie mod_rewrite, um den Logout-Pfad auf eine Zwischenseite zu leiten, und setzen Sie Clear-Site-Data auf dieser Zwischenseite per Location-Block. Alternativ: Setzen Sie den Header direkt in Ihrem PHP-Logout-Script mit header("Clear-Site-Data: ...") vor dem Redirect.