.htaccess - 如何使用 htaccess 将国际用户重定向到英文版网站?

标签 .htaccess redirect multilingual

我正在执行我的第一个 htaccess 步骤,但没有任何进展......

我有一个德语和英语网站,我想将所有非德语用户重定向到该网站的英语版本。

这是我所拥有的:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:Accept-Language} (cs|da|el|en|es|et|fi|fr|ga|hr|hu|it|lt|lv|nl|no|pl|pt|ro|ru|sl|sr|sv) [NC]
RewriteRule ^$ http://www.some.de/index.cfm?language=EN [R,L]

两个问题:
我在德国,浏览器设置为德语,但仍然重定向到英语版本。这是为什么?
如果用户从某个较低级别的页面开始,是否必须对所有后续页面执行此操作?我必须为每个页面制定重写规则吗?

最佳答案

I'm in Germany with a browser set to German and I'm still redirected to the Englisch version. Why is that?

Accept-Language 是语言环境和值(value)观的大杂烩。您的浏览器可能还会提交一堆在您的正则表达式中匹配的其他语言/区域设置对(例如 en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2 )。您可以尝试做的是匹配 not de:

RewriteCond %{HTTP:Accept-Language} !de [NC]

Will this have to be done for all subsequent pages in case the user starts out on some lower level page? Do I have to make a rewrite rule for every page?

不确定您如何设置页面,但您可以尝试将规则更改为:

RewriteRule ^(.*)$ /$1?language=EN [R,L,QSA]

所以请求/被重定向到/?language=EN ,和/somepath//somepath/?language=EN ,和/file.cfm?someparam=value/file.cfm?language=EN&someparam=value

关于.htaccess - 如何使用 htaccess 将国际用户重定向到英文版网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376606/

相关文章:

jquery - 如果未使用 jquery 在 html 中登录,则重定向用户

postgresql - 使用 Postgresql 进行多语言全文搜索

html - 斜杠不指向带有 htaccess 的目录

php - 如何在 PHP 中将数据库 URL 显示为网页 URL

javascript - 如何获取重定向的 iframe 的当前 src

magento - 在管理员中启用使用安全 URL,magento 无法正确重定向

php - ajax 表单请求不适用于 mod_rewrite

php - .htaccess 用/为每个 PHP 文件替换 .php

javascript - 用于匹配任何语言的 HashTags 的正则表达式

android - 如何在android中为不同的语言使用不同的png无文本按钮?