Cómo evitar enlaces rotos en un archivo de encabezado común

Tengo un header.php común para incluir en prácticamente todas las páginas del sitio web. Tengo enlaces relativos a diferentes recursos en el archivo header.php. Tan pronto como lo incluya en otras páginas que se encuentran en diferentes subcarpetas debajo de la carpeta raíz, algunos de los enlaces se romperán. Puedo hacer que todos los enlaces en el header.php sean absolutos. Ahora aparece otro problema: si mueve la aplicación a otro dominio y la coloca en algún lugar debajo de wwwroot, los enlaces absolutos no funcionarán. No pude encontrar una forma en PHP para extraer la parte de la URL que es la raíz de esta aplicación. Terminé definir una variable para la raíz de la aplicación y prefijo cada enlace dentro de header.php con esta variable. De esta forma, solo necesito cambiar una variable cuando esta aplicación se mueva de un lugar a otro.

Me pregunto si hay otras formas mejores de manejar este tipo de situación.

Su retroalimentación sería muy apreciada.

Editar: esperando recibir más retroalimentación.

Usted escribe que es un archivo header.php común, al igual que con la variable central, puede hacer uso del elemento HTML , pero esto está limitado a HTML.

Puede crear usted mismo una función de mapeo que pueda resolver URLs absolutas al URI de solicitud, o que pueda resolver las URL relativas al contexto del que salen para que puedan mapearse de forma absolutamente relativa al URI de solicitud.

Luego puede implementar un filtro de salida que maneje los URI por sí mismo y puede hacer algunos prefijos especiales para tratamientos especiales.