PHP:如果URL没有参数,请使用它重定向到URL

时间:2016-03-01 16:57:22

标签: php http-headers http-accept-language

如何在PHP中将请求重定向到http(s)//domain.tld/WHATEVER.phphttp(s)//domain.tld/WHATEVER.php?lang=<?php substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>

所以,如果您访问已经使用lang参数的URL,那么很好,什么都不做。如果lang参数不存在,301将重定向到包含lang参数的URL。

2 个答案:

答案 0 :(得分:1)

试试这个。请注意,退出很重要,因为将标题设置为位置不会终止当前页面。此外,请注意,如果您尚未向客户端发送任何内容(例如,a.k.a没有完成任何回声或打印),您只能发送标题。

if ( !isset( $_GET[ 'lang' ] ) ) {
    header( 'Location: http(s)//domain.tld/WHATEVER.php?lang=' . substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) );
    exit;
}

答案 1 :(得分:0)

由于lang是一个GET变量,您只需检查它是否已设置。如果是这样,请重定向到所需的网址。

if(!isset($_GET['lang'])){
header('location: ' . 'http(s)//domain.tld/WHATEVER.php?lang='. substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
exit;
}