如何将请求重定向http(s)//domain.tld/WHATEVER.php
到http(s)//domain.tld/WHATEVER.php?lang=<?php substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>
PHP 中?
因此,如果您访问的 URL 已经带有 lang 参数,那很好,什么也不做。如果 lang 参数不存在,则 301 重定向到包含 lang 参数的 URL。
如何将请求重定向http(s)//domain.tld/WHATEVER.php
到http(s)//domain.tld/WHATEVER.php?lang=<?php substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); ?>
PHP 中?
因此,如果您访问的 URL 已经带有 lang 参数,那很好,什么也不做。如果 lang 参数不存在,则 301 重定向到包含 lang 参数的 URL。
尝试这个。请注意,退出很重要,因为将标题设置为位置不会终止当前页面。另外,请注意,如果您还没有向客户端发送任何内容(也就是没有进行任何回显或打印),您只能发送标头。
if ( !isset( $_GET[ 'lang' ] ) ) {
header( 'Location: http(s)//domain.tld/WHATEVER.php?lang=' . substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) );
exit;
}
由于 lang 是一个 GET 变量,您可以简单地检查它是否已设置。如果是这样,请重定向到所需的 URL。
if(!isset($_GET['lang'])){
header('location: ' . 'http(s)//domain.tld/WHATEVER.php?lang='. substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
exit;
}