それで、昨日一日中問題の解決策を探しましたが、類似点は見つかりましたが、正確に一致するものはありませんでした。ブラウザの言語をチェックし、ユーザーを (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 を押し込みます