este problema se puede tratar de diversas maneras, pero te damos la que en nuestra opinión es la solución más completa.
Solución:
RAIZ DEL DOCUMENTO
El directorio raíz de este sitio definido por la directiva ‘DocumentRoot’ en la Sección General o una sección, por ejemplo
DOCUMENT_ROOT=/var/www/example
HTTP_HOST
La URL base del host, por ejemplo
HTTP_HOST=www.example.com
La raíz del documento es la ruta local a su sitio web, en su servidor; El host http es el nombre de host del servidor. Son bastante diferentes; tal vez puedas aclarar tu pregunta?
Editar: Usted dijo:
Caso 1: encabezado (‘Ubicación:’. $_SERVER[‘DOCUMENT_ROOT’] . ‘/abc.php’)
Caso 2: header(‘Ubicación: ‘. $_SERVER[‘HTTP_HOST’] . ‘/abc.php’)
Sospecho que el primero solo funcionará si ejecuta su navegador en la misma máquina que está sirviendo las páginas.
Imagínese si alguien más visita su sitio web, usando su máquina Windows. Y su servidor web les dice en los encabezados HTTP, “oye, en realidad, redirija esta ubicación: /var/www/example/abc.php”. ¿Qué espera que haga la máquina del usuario?
Ahora, si estás hablando de algo como
contra
Eso podría tener sentido. Sospecho que en este caso probablemente se prefiera lo primero, aunque no soy un gurú de PHP.
Eh, ¿cuál es la pregunta? DOCUMENT_ROOT
contiene la ruta a la web actual, en mi caso /home/www
. HTTP_HOST
contiene testing.local
, ya que se ejecuta en el dominio local. La diferencia es obvia, ¿no?
No puedo entender dónde podría intercambiar esos dos, entonces, ¿por qué debería considerar las ventajas?
HTTP_HOST
le dará la URL del host, por ejemplo domain.com
DOCUMENT_ROOT
le dará la ruta absoluta a la raíz del documento del sitio web en el sistema de archivos del servidor, por ejemplo /var/www/domain/
Por cierto, ¿has intentado mirar el manual de PHP, específicamente $_SERVER
? Ahí está todo explicado.
Recuerda que tienes la opción de valorar este tutorial si te fue de ayuda.