我不是Apache/.htaccess的大师。
对于 URL: 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
.
因此,我用谷歌搜索并编写了这些规则:
SetEnvIf ^Cookie$ "(.+)" HTTP_MY_COOKIE=$1
SetEnvIf HTTP_MY_COOKIE ".+language_uiAAA(.+?)BBB.+" saved_language=$1
SetEnvIf saved_language "^(.+)$" prefer-language=$1
但是,这些规则不起作用。请帮忙。
或者
请提出更好的方法。