我有一个多语言站点,它使用cookie来存储语言信息。我需要编写一个.htaccess脚本根据cookie将语言添加到基于cookie的URI使用htaccess和基于URI设置cookie
a)检查是否设置了语言cookie,以及URI是否包含该脚本。如果没有,则将其添加到URI中。
现在我有这样的:
RewriteCond %{HTTP_COOKIE} language=([a-z]{2}) [NC]
RewriteCond %{REQUEST_URI} !^%1/(.*) [NC]
RewriteRule ^(.*)$ /%1/%2 [L,NC,R=302]
虽然这给了我正确的URI(“domain.com/en/”),它给了我一个错误说的页面没有正确重定向。
b)检查URI中是否设置了语言参数,以及是否设置了适当的cookie。
到目前为止的代码因为这是我有:
RewriteRule ^([a-z]{2})(.*)/$ - [co=language:$1:.domain.com:7200:/]
但是你离开页面后,这只设置cookie。所以我将不得不在地址中添加'/ fr /',然后刷新两次
我已经试过寻找谷歌和堆栈溢出,但我似乎无法得到这个工作!
我是新来的.htaccess - 我不知道%1只适用于最后一个RewriteCond,谢谢!我尝试了你的建议,但没有奏效。它附加了语言,但Firefox说这个页面没有正确重定向。 – Martin 2011-12-21 18:21:06
我尝试了你的新建议,它仍然给我一个无限循环,并且uri变成http://domain.com/fr/fr/fr/fr/fr/fr/fr/fr/fr/fr/fr/ fr/fr/fr/fr/fr/fr/fr/fr/fr/ – Martin 2011-12-21 22:00:26
如果我有Cookie,则重定向到domain.com/fr/404.shtml;如果我没有cookie并转到domain.com/fr/,那么它只会在第二次查看该页面时设置它。 – Martin 2011-12-22 15:27:30