404 durch Query-Parameter: die cHash-Prüfung in TYPO3
Mit enforceValidation prüft TYPO3 bei jedem Seitenaufruf, ob zu den Query-Parametern ein gültiger cHash gehört. Fehlt er, liefert TYPO3 statt der Seite die 404-Fehlerseite aus. Das ist gewollt: Ohne diese Prüfung ließe sich der Seiten-Cache mit beliebigen Parametern fluten.
config/system/settings.php
'FE' => [
'cacheHash' => [
'enforceValidation' => true,
],
],
Die Falle: Wer eine Seite zum Testen mit angehängtem Parameter aufruft – etwa um einen Cache zu umgehen –, bekommt immer die Fehlerseite. Hat die Fehlerseite Kopf und Menü, sieht sie auf den ersten Blick sogar echt aus. Beim Prüfen deshalb die Seite ohne Parameter abrufen und auf den Seitentitel achten. Wer einen Proxy- oder Browser-Cache umgehen will, nimmt dafür einen Request-Header statt eines Parameters:
Terminal
curl -s -H 'Cache-Control: no-cache' www.example.org/seite/ | grep -o '<title>[^<]*'
Gängige Kampagnen-Parameter wie utm_source, mtm_campaign oder pk_campaign nimmt TYPO3 bereits von Haus aus von der Prüfung aus. Eigene Parameter, die ohne cHash funktionieren sollen, ergänzt man am sichersten in der additional.php – per [] angehängt, so bleibt die Standardliste unangetastet:
config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['excludedParameters'][] = 'newsletter_id';
Erstellt am: