2013-05-27 106 views
0

请求很简单,但是我找不到实现它的方法。我有类似的链接:在.htaccess文件中重写规则

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

是否必须在.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部分。您还需要每种语言都需要一行,以便重定向和维护列表。

+0

你好fiskeben,非常感谢你。是的,我最好通过.htaccess来完成此操作。但是,如果我找不到方法,我会使用您的解决方案。 – user2416426