$_SERVER['PHP_SELF']
ドキュメントルートからの相対パスを含む変数を言語フォルダに追加できます。
パスがの場合site.com/fr/file
、この変数には。が含まれます/fr/file
。この部分の最初の部分を削除すると、呼び出されたスクリプトの「言語に依存しない」パスが取得され、目的の言語ディレクトリに追加できます。
あなたの道があなたが説明した通りであるならば、あなたは次の解決策を試すことができます(テストされていません!):
<?php
$sites = array(
"en" => "/en",
);
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (!in_array($lang, array_keys($sites))){
$lang = 'en';
}
$path_to_script = substr($_SERVER['PHP_SELF'], 3);
header('Location: ' . $sites[$lang] . $path_to_script);
?>
編集:アプローチを明確にするために:サイトがの場合site.com/fr/123/index.php
、変数には、先頭の言語ディレクトリのないスクリプトディレクトリ$path_to_script
が含まれます。/123/index.php
次に、これを目的の言語ディレクトリに追加して、目的のパスを取得できます。/en/123/index.php