0

私は多言語サイトを開発しています。URL で渡される変数で生成されたコンテンツ。私たちについてのページの例: 私の URL は次のとおりです。

言語を変更すると、URL は domain.com/file.php?id=1&lang=en になります。言語を変更するたびに、URL に次のような言語が追加されます: domain.com/file.php?id=1&lang=en&lang=fr&lang=de&lang=en.....

他の multilang プロジェクトでは、これを使用しました。header("location: ".$_SERVER['SCRIPT_NAME']);しかし、動的なページではありませんでした。このように:domains.com/aboutus.php。つまり、ページ数は静的でした。ユーザーはページを追加または削除できません。

今回は、試しheader("location: ".$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']);た URL にページ ID を渡すためですが、言語を変更しようとするたびにリダイレクト サイクル エラーが発生します。

アップデート

言語を選択するコード:

<?php $actual= $_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"];?>

<div id="langContainer">
    <span><a <?php if ($_SESSION['idLang']=='en') {echo"class='active'";}?> href="<?php echo $actual ?>&lang=en">EN</a></span>
    <span><a <?php if ($_SESSION['idLang']=='fr') {echo"class='active'";}?> href="<?php echo $actual ?>&lang=fr">FR</a> </span>
    <span><a <?php if ($_SESSION['idLang']=='es') {echo"class='active'";}?> href="<?php echo $actual ?>&lang=es">ES</a></span>
    <span><a <?php if ($_SESSION['idLang']=='de') {echo"class='active'";}?> href="<?php echo $actual ?>&lang=de">DE</a></span>
</div>

私のsession.phpで

if (!isset($_SESSION["idLang"]) )
    $_SESSION["idLang"] = 'en';

if (@isset($_GET["lang"])){
    $_SESSION["idLang"] = $_GET['lang'];

    //header("location: ".$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']);

}

だから私の質問は、言語変数を隠して、URLをきれいにすることができるかどうかです。

ありがとう

4

1 に答える 1