私は多言語サイトを開発しています。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をきれいにすることができるかどうかです。
ありがとう