所以我昨天搜索了整個一天的問題的解決方案,發現相似之處,但沒有完全匹配。我嘗試編寫一個.htacces文件,該文件應該檢查瀏覽器語言,然後將用戶重定向到(德語)xyz.de/?lang=de & page = $ 1或(NONGERMAN)xyz.de/?lang=en & page = $ 1RewriteCond適用於IE瀏覽器,但不適用於Firefox或Chrome
它應該以瀏覽器的語言自動加載主頁。到目前爲止,我沒有再收到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){[ 「網頁」] =>串(0) 「」[ 「郎」] = >串(2) 「的」}
[GECKO] xyz.de
var_dump($_GET)
陣列(0){}
[GECKO] xyz.de/home
var_dump($_GET)
任何人的想法是什麼問題????
陣列(2){[ 「郎」] =>串(2) 「EN」[ 「網頁」] =>串(4)的 「家」}
//更改
由於到最後發表我改變了代碼如下:
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]
現在沒有重定向,只是當我把/家庭奧德secondpage或者它什麼都,它的英文總是加載頁面,它應該重定向頁面to xyz.de/lang=[ACCEPT-LANG] & page = home如果您按xyz.de
您是否看過每個您測試過的瀏覽器發送的實際HTTP頭?他們必須是失敗的原因。 – Perleone
我以爲,我希望這裏有人,曾經有過同樣的問題。頭definitly發出接受語言: 鉻: 接受語言:EN-US,EN; Q = 0.8 火狐: 接受語言:EN-US,EN; Q = 0.5 它看起來像FF和Chrome不會將重寫寫入瀏覽器字段,但不會將參數寫入$ _GET // Sry中,以便我的英語順便說一句。 –
您可以安全地刪除第二個'RewriteCond'。如果第一個匹配,則重寫在第一個「重寫規則」處終止。如果不是,你想要趕上所有的請求... – arkascha