0

それで、昨日一日中問題の解決策を探しましたが、類似点は見つかりましたが、正確に一致するものはありませんでした。ブラウザの言語をチェックし、ユーザーを (GERMAN) xyz.de/?lang=de&page=$1 または (NONGERMAN) xyz.de/?lang=en&page=$1 にリダイレクトすることになっている .htacces ファイルを書き込もうとしました。

ブラウザの言語でホームページを自動的にロードすることになっています。これまでのところ、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)

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

[GECKO] xyz.de

    var_dump($_GET)

配列(0) { }

[GECKO] xyz.de/home

    var_dump($_GET)

誰が問題が何であるか考えていますか????

array(2) { ["lang"]=> string(2) "en" ["page"]=> string(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 または 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 に答える