请求很简单,但我找不到实现它的方法。我有类似的链接:
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
。
我已经搜索了好几天,但未能找到合适的解决方案。请帮忙。
答案 0 :(得分: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
部分更难。每个语言还需要一行来重定向和维护列表。