Saludos comunidad.

Mi caso es el siguiente: Supongamos una estructura web como la siguiente:

/
/modulos/
/php/
/secciones/

Ahora bien, yo uso includes para agregar el header y el footer que están en "/modulos/"

Código PHP :

include ('modulos/header.php');

Pero si copio esa página, y la meto digamos que en "secciones/", el include ya no funciona, es obvio, porque cambia la ruta del archivo, por lo que tengo que modificar la ruta:

Código PHP :

include ('../modulos/header.php');

Entonces, lo que quiero saber es si existe una forma óptima y universal para poder establecer una ruta base con la cual hacer cualquier include o require, desde cualquier nivel de la página y que apunte siempre a la raíz del proyecto. He intentado cosas como:

Código PHP :

// esto da un warning de que no se encuentra el archivo
$base = 'localhost/"
include ($base . 'modulos/header.php');
// esto dice que está desactivado en la configuración del server
// esto en el servidor online provoca que la página no cargue (cambiando obvio "localhost" por la url del sitio)
$base = 'http://localhost/"
include ($base . 'modulos/header.php');

He probado intentando establecer la url del server, la ubicación del archivo, etc. pero no doy con la solución, y buscando y buscando las variadas soluciones que algunos proponen no me funcan.

La pregunta, ¿existe una forma óptima y segura de hacer includes usando una ruta base que parta siempre desde la base del proyecto, sin importar el nivel donde se encuentre la página?

Saludos!