Заголовки http — PHP: если у URL нет параметра, перенаправьте его на 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 перенаправляют на URL-адрес, содержащий параметр lang.

0

Решение

Поскольку lang является переменной GET, вы можете просто проверить, установлена ​​ли она. Если это так, перенаправьте на нужный URL.

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

Другие решения

Попробуй это. Обратите внимание, что выход важен, потому что установка заголовка в качестве местоположения не приведет к завершению текущей страницы. Кроме того, имейте в виду, что вы можете отправлять заголовки только в том случае, если вы еще ничего не отправляли клиенту (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