.htaccess 通过 cookie 值重写
.htacces rewrite by cookie value
我有一个 2 种语言的网站。我通过 php 常量为每种语言插入文本,并通过 cookie(lang=es
或 lang=en
)定义用户语言。
现在每种语言的基础 url 是 www.webname.com/
但我想根据语言重写它。如果 cookie 设置为 es
,则 url 必须是 www.webname.com/es/
,如果它在 en
中,则必须是 www.webname.com/en/
。
我正在查看一些手册和教程,但我对正则表达式真的很糟糕。
编辑:
我正在我的 .htaccess 文件中做类似的事情:
RewriteEngine On
RewriteCond %{HTTP_COOKIE} lang=en;? [NC]
如果我像这样进行重定向:
RewriteRule ^ http://www.google.com [NC,L]
之后,它可以工作,但我不知道如何通过重写来做同样的事情。
试试这个:
RewriteEngine On
#Redirecting with the cookie value
RewriteCond %{HTTP_COOKIE} ^lang=(en|es)$ [NC]
RewriteRule ^(.*)$ http://example.com/%1/ [R,L]
如果 cookie 设置为 "en" 这会将每个请求重定向到
例如。com/en/
我有一个 2 种语言的网站。我通过 php 常量为每种语言插入文本,并通过 cookie(lang=es
或 lang=en
)定义用户语言。
现在每种语言的基础 url 是 www.webname.com/
但我想根据语言重写它。如果 cookie 设置为 es
,则 url 必须是 www.webname.com/es/
,如果它在 en
中,则必须是 www.webname.com/en/
。
我正在查看一些手册和教程,但我对正则表达式真的很糟糕。
编辑: 我正在我的 .htaccess 文件中做类似的事情:
RewriteEngine On
RewriteCond %{HTTP_COOKIE} lang=en;? [NC]
如果我像这样进行重定向:
RewriteRule ^ http://www.google.com [NC,L]
之后,它可以工作,但我不知道如何通过重写来做同样的事情。
试试这个:
RewriteEngine On
#Redirecting with the cookie value
RewriteCond %{HTTP_COOKIE} ^lang=(en|es)$ [NC]
RewriteRule ^(.*)$ http://example.com/%1/ [R,L]
如果 cookie 设置为 "en" 这会将每个请求重定向到 例如。com/en/