Feb 27, 2010
Problemas con $_SERVER['SERVER_NAME'] y subdominios virtuales
Bueno, posteo esto porque es un problema que me ha pasado hoy, es un tip sencillo para PHP, un pequeño problema que alguno puede tener o cruzarse alguna vez.
El objetivo: Necesito que según el subdominio, un script se comporte de forma diferente, en mi server de prueba me hiba bien usando la variable global $_SERVER['SERVER_NAME'], pero cuando subo a producción, el script falla.
El codigo era masomenos asi:
if ($_SERVER['SERVER_NAME'] == "dev.site.com") {
require ("config/dev.php");
} else {
require ("config/prod.php");
}
Problema: $_SERVER['SERVER_NAME'] no devolvia el verdadero subdominio donde estaba, sino el ServerName definido en la configuración del Apache
Solucción: Empezé a usar $_SERVER['HTTP_HOST'].
Por algún motivo, en mi server $_SERVER['SERVER_NAME'] funcionaba sin problemas, pero realmente el SERVER_NAME hace referencia justamente a eso, asi que su uso para detectar el subdminios esta mal, cuando en realidad se debería usar HTTP_HOST, algo que tuve que aprender a la fuerza.
Tips relacionados:

Ultimos comentarios