/ / Mod_Rewrite: wartość domyślna, jeśli plik cookie nie jest ustawiony - regex, apache, .htaccess, mod-rewrite, cookies

Mod_Rewrite: wartość domyślna, jeśli plik cookie nie jest ustawiony - regex, apache, .htaccess, mod-rewrite, cookies

Mam następującą regułę przepisywania.

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

Zastanawiam się, czy istnieje sposób na uzyskanie wartości domyślnej (np. "En"), gdy plik cookie "lang" nie jest ustawiony (lub pusty). W ten sposób wartość% 1 będzie wartością cookie lub "en".

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz użyć takiej reguły, aby uzyskać wartość domyślną:

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

Tylko jeden z back-reference %1 lub %2 zostanie zapełnione ze względu na użycie alternatywy dla regex, np. if lang=([^;]+) wzór pasuje do plików cookie %1 zostaną ustawione i %2 będzie puste. Gdyby lang ciasteczko nie jest wtedy dostępne %1 będzie puste, ale %2 zostanie ustawione na en.