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 № 1Sie 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
.