Как прописывать пути внутри шапки, подключённой через PHP к разным файлам

Я много раз по новой запускал свой сайт. И каждый раз я наступаю на одни и те же грабли.

Запоминать не получается, потому что эти вещи делаешь один раз в самом начале, а потом не делаешь очень долго. Поэтому решил записать здесь. Больше для себя на будущее. Вот одна из таких грабель:

Сперва я люблю создавать файлики html. Когда их становится много, я переделываю их в php, выношу повторяющиеся части страниц (шапку, подвал) в отдельные php-файлы и подключаю их ко всем файлам, где эти повторяющиеся части нужны. После этого я могу вносить изменения только в одном файле, а не во всех.

Я не буду объяснять, как это сделать, потому что это быстро гуглится, копируется, вставляется и работает (а ещё я не помню). Но при этом ломается другое: относительные пути. И это уже гуглится сложнее — сегодня я потратил час, чтобы решить проблему.

В общем, проблема: когда инклюдишь шапку на разные страницы, непонятно, как прописывать адреса внутри этой шапки. Они должны быть абсолютными, но сервер, на котором запущен сайт, может быть разным, а, соответственно, может быть разным и корневой каталог.

Есть переменная $_SERVER['DOCUMENT_ROOT'], но она почему-то не работает, я не разобрался, почему.

Но если присвоить значение этой переменной собственной переменной, а потом свою переменную вставить в нужное место, то все заработает.

Создаем переменную $ROOT и присваиваем ей значение:
$ROOT = $_SERVER['DOCUMENT_ROOT']

Используем $ROOT в конструировании абсолютных ссылок:
<a href="<?php $ROOT ?>/index.php">

Теперь путь заработает на любом сервере и из любой страницы сайта.