语言(保存在cookie中),特定导航

时间:2013-07-02 08:59:26

标签: perl apache .htaccess cookies setenv

我不是 Apache / .htaccess 的主人。

对于网址:base-url/destination/,我需要以该语言显示保存在Cookie中的网页。如果我们没有在cookie中保存任何语言或者cookie不存在,我需要显示与浏览器语言相同的页面。

现在,为了实现这一点,我在.htaccess文件中编写了规则:

RewriteCond %{REQUEST_URI} /destination/$ 
RewriteCond %{HTTP_COOKIE} language_uiAAA(\w{3}).*?BBB
RewriteRule ^(.*)\$ $httpbase/%1/destination.html

这将以cookie中保存的语言正确显示页面。

但是,我被要求使用SetEnvIf, SetEnvIfNoCase or prefer-language编写规则。

因此,我用Google搜索并编写了这些规则:

SetEnvIf ^Cookie$ "(.+)" HTTP_MY_COOKIE=$1
SetEnvIf HTTP_MY_COOKIE ".+language_uiAAA(.+?)BBB.+" saved_language=$1
SetEnvIf saved_language "^(.+)$" prefer-language=$1

但是,这些规则不起作用。请帮忙。

请建议一个更好的方法。

1 个答案:

答案 0 :(得分:1)

瞧!

完成!!

以下是代码:

SetEnvIf ^Cookie$ "(.+)" HTTP_MY_COOKIE=$1
SetEnvIf HTTP_MY_COOKIE ".+language_uiAAA(.+?)BBB.+" saved_language=$1
SetEnvIf saved_language "^(\w{2}).+$" prefer-language=$1
SetEnvIf REDIRECT_prefer-language (.+) prefer-language=$1