$_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