0

リクエストは簡単ですが、実装する方法が見つかりません。次のようなリンクがあります。

httр://mysite.com/index.php?lang=EN
httр://mysite.com/index.php?route=add&lang=EN
httр://mysite.com/index.php?route=view&lang=EN

等々。私が望むのは、EN を GB に変更できるように 301 リダイレクトを作成することです。たとえば、顧客が を開いた場合、顧客httр://mysite.com/index.php?route=add&lang=ENは にリダイレクトされhttр://mysite.com/index.php?route=add&lang=GBます。

私はこれを何日も検索しましたが、実用的な解決策を見つけることができませんでした. 助けてください。

4

1 に答える 1

0

.htaccess で行う必要がありますか? これを PHP で行う比較的簡単な方法を次に示します。

<?
if ("EN" == $_GET['lang']) {
  $params = $_GET;
  $params['lang'] = "GB";
  $query_strings = array();
  foreach ($params as $key => $value) {
    $query_strings[] = $key . "=" . $value;
  }
  header("HTTP/1.1 301 Moved Permanently"); 
  header("Location: http://www.mysite.com?" . join($query_strings, "&");
}

lang要するに、各クエリ パラメータを分離し、パラメータだけを見て、リダイレクトを行うかどうかを判断できるレベルで、この問題を解決する方が簡単かもしれないということです。

正規表現 (.htaccess で使用する必要がある場合) を使用すると、そのlang部分だけを分離するのが難しくなります。また、リダイレクトしてリストを維持する言語ごとに 1 行が必要です。

于 2013-05-27T06:33:42.433 に答える