使用基于浏览器语言的 htaccess 从和到子域重定向
Posted
技术标签:
【中文标题】使用基于浏览器语言的 htaccess 从和到子域重定向【英文标题】:redirect from and to subdomain with htaccess base on browser language 【发布时间】:2013-05-06 20:33:56 【问题描述】:我需要根据用户的语言重定向主页中的用户。
我想我必须使用
RewriteCond %HTTP:Accept-Language
但我想不通。
我的最后一次尝试:
但这会产生一个无限循环。
文件夹结构
htdocs/index.php ->mydomain.com htdocs/en/index.php ->en.mydomain.com htdocs/fr/index.php -> fr.mydomain.com【问题讨论】:
【参考方案1】:您需要确保 HOST 尚未指向正确的位置:
RewriteEngine on
RewriteCond %HTTP_HOST !^mydomain.com$ [NC]
RewriteCond %HTTP:Accept-Language ^es [NC]
RewriteRule .* http://mydomain.com [R,L]
RewriteCond %HTTP_HOST !^en.mydomain.com$ [NC]
RewriteCond %HTTP:Accept-Language ^en [NC]
RewriteRule .* http://en.mydomain.com [R,L]
RewriteCond %HTTP_HOST !^fr.mydomain.com$ [NC]
RewriteCond %HTTP:Accept-Language ^fr [NC]
RewriteRule .* http://fr.mydomain.com [R,L]
【讨论】:
es 语言一切正常,但英语语言循环... 规则看起来是一致的,所以它们应该都是一样的。尝试清除浏览器缓存/历史记录,或尝试使用其他浏览器进行测试。当我使用 Chrome 时,我注意到它会缓存原始尝试,而不是使用新的重定向规则。以上是关于使用基于浏览器语言的 htaccess 从和到子域重定向的主要内容,如果未能解决你的问题,请参考以下文章