/ / Mod_Rewrite: Standardwert, wenn kein Cookie gesetzt ist - Regex, Apache, .htaccess, Mod-Rewrite, Cookies

Mod_Rewrite: Standardwert, wenn kein Cookie gesetzt ist - Regex, Apache, .htaccess, Mod-Rewrite, Cookies

Ich habe die folgende Rewrite-Regel.

RewriteCond %{HTTP_COOKIE} lang=([^;]+)
RewriteRule .* $1/%{unescape:%1}/index.html [L]

Ich frage mich, ob es einen Weg gibt, einen Standardwert zu erhalten (wie "en"), wenn der "lang" -Cookie nicht gesetzt (oder leer) ist. Auf diese Weise wäre der Wert von% 1 der Wert des Cookies oder "en".

Antworten:

3 für die Antwort № 1

Sie können eine Trickregel wie diese verwenden, um den Standardwert zu erhalten:

RewriteCond %{HTTP_COOKIE}##en lang=([^;]+)|##(en) [NC]
RewriteRule (.*) $1/%{unescape:%1%2}/index.html [L]

Nur einer der Rückseitenreferenz %1 oder %2 wird aufgrund der Verwendung von Regex-Alternation, d. h lang=([^;]+) Muster stimmt dann mit Cookies überein %1 wird eingestellt und %2 wird leer sein. Ob lang Cookie ist dann nicht verfügbar %1 wird aber leer sein %2 wird auf eingestellt en.