Как я могу перенаправить запросы на 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 перенаправляют на URL-адрес, содержащий параметр lang.
Поскольку lang является переменной GET, вы можете просто проверить, установлена ли она. Если это так, перенаправьте на нужный URL.
if(!isset($_GET['lang'])){
header('location: ' . 'http(s)//domain.tld/WHATEVER.php?lang='. substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
exit;
}
Попробуй это. Обратите внимание, что выход важен, потому что установка заголовка в качестве местоположения не приведет к завершению текущей страницы. Кроме того, имейте в виду, что вы можете отправлять заголовки только в том случае, если вы еще ничего не отправляли клиенту (a.k.a не выполнив никаких эхо или распечаток).
if ( !isset( $_GET[ 'lang' ] ) ) {
header( 'Location: http(s)//domain.tld/WHATEVER.php?lang=' . substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) );
exit;
}