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

等等。我想要的是创建 301 重定向,以便将 EN 更改为 GB。例如,如果客户打开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部分就更难了。对于要重定向和维护列表的每种语言,您还需要一行。

于 2013-05-27T06:33:42.433 回答