0

所以我昨天一整天都在寻找我的问题的解决方案,发现了相似之处,但没有完全匹配。我尝试编写一个 .htacces 文件,该文件应该检查​​浏览器语言,然后将用户重定向到 (GERMAN) xyz.de/?lang=de&page=$1 或 (NONGERMAN) xyz.de/?lang=en&page=$1

它应该以浏览器的语言自动加载主页。到目前为止,我没有再遇到 500 个错误,它在IE上运行得很好,并且确实以正确的语言加载了页面,这给我留下了深刻的印象。但在 Firefox 或 Chrome 中,它既不显示语言也不显示页面;如果我 var_dump($_GET) 我什么也得不到。

.htaccess

    RewriteEngine on
    RewriteCond %{HTTP_ACCEPT_LANGUAGE} ^(de|de-at|de-li|de-lu|de-ch) [NC]
    RewriteRule ^([^./]{3}[^.]*)$   /index.php?lang=de&page=$1 [QSA,L] 
    RewriteCond %{HTTP_ACCEPT_LANGUAGE} !^(de|de-at|de-li|de-lu|de-ch) [NC] 
    RewriteRule ^([^./]{3}[^.]*)$   /index.php?lang=en&page=$1 [QSA,L]<i>

[IE9] xyz.de

   var_dump($_GET)

数组(2) { ["page"]=> string(0) "" ["lang"]=> string(2) "de" }

[壁虎] xyz.de

    var_dump($_GET)

数组(0){}

[壁虎] xyz.de/home

    var_dump($_GET)

有人知道问题是什么吗????

数组(2) { ["lang"]=> 字符串(2) "en" ["page"]=> 字符串(4) "home" }

// 改变

感谢上一篇文章,我更改了以下代码:

    RewriteCond %{HTTP:ACCEPT_LANGUAGE} !^(de) [NC]
    RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1&lang=en [QSA,L]

    RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1&lang=de [QSA,L]

现在它什么都不重定向,就在我把 /home oder secondpage 或任何东西放在里面时,它总是以英文加载页面,并且它应该将页面重定向到 xyz.de/lang=[ACCEPT-LANG]&page=home 如果你按 xyz.de

4

1 回答 1

0

尝试使用%{HTTP:Accept-Language}而不是%{HTTP_ACCEPT_LANGUAGE}.

这篇博文非常有用。

于 2012-12-02T14:42:42.643 回答