Undefined index: HTTP_HOST

php

Представьте себе. Ваш сайт работает. Работает давно и стабильно. Но вот в логах начинаете видеть ошибки:
Undefined index: HTTP_HOST

Речь идёт о глобальном массиве $_SERVER. Чтобы объяснить феномен, надо прочитать документацию:

‘HTTP_HOST’
Содержимое заголовка Host: из текущего запроса, если он есть.

Другими словами, если клиент использует нестандартный браузер (бот??), который нестандартно формирует заголовок запроса, то вы можете получить любую ерунду вместо адреса своего сайта. Или возможно даже пустой заголовок.

Если же вам в скрипте нужно получить название сервера лучше используйте индекс SERVER_NAME.


‘SERVER_NAME’

Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.

В нормальной ситуации эти величины совпадают

<?php
echo "HOST -". $_SERVER['HTTP_HOST'];
echo "HOST -". $_SERVER['SERVER_NAME'];
?>

Резюме
=====================
Я тут подумал, и пришёл к выводу, что нет никакого смысла использовать $_SERVER['HTTP_HOST'] вообще. На самом деле, это очень экзотический интерес, что там клиент написал в заголовках своего запроса.