[eside-ghost] Redirección en PHP y HTTP headers
yUnwEb
yunweb en yunweb.homeunix.org
Jue Jun 8 21:53:01 CEST 2006
On Thu, 08 Jun 2006 12:59:29 +0200
Alvaro Marín <alvaro en rigel.deusto.es> wrote:
> A las buenas,
buenas split,
>
> una preguntilla por aquí para los que pilotais PHP :)
> Imaginemos un dominio www.dominio.com que va a cambiar de server a
> otra IP. Cambio en el DNS y a funcionar. El problema es que siempre
> hay DNSs que no refrescan tan rápido como deberían entonces tengo que
> hacer una redirección en el servidor viejo para que vaya al nuevo. El
> tema de :
>
> <? header("Location: http://www.dominio.com"); ?>
Esto, en teoría, es para páginas movidas temporalmente (respuesta 302).
Para las que se han movido de forma permanente sería más correcto algo
tipo:
<?
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.dominio.com");
?>
La diferencia es que esta se suele cachear, mientras que la otra no.
También hay movidas, como que el 302 que devuelve si le pones sólo el
Location debería ser 303 y tal, pero bueno, eso tampoco es muy
importante, no parece que lo vayan a cambiar. En cualquier caso, esto
tampoco soluciona tu problema :)
>
> no funciona porque entra en un bucle porque Apache cree que el
> dominio lo tiene él.
> Entonces había pensado en algo como:
>
> <? header("Location: http://IP_nueva"); ?>
>
> pero claro, tengo que indicar el dominio al que estoy intentando
> acceder (para que vaya a su VirtualHost).
> Había alguna cabecera HTTP donde indicar esto creo recordar, no es
> así? (pensaba que era la Host, pero parece que no hace caso :S )
> Supongo que con un header() de dicha cabecera antes del location iría
> bien...
Pues yo diría que no. Hasta donde yo sé, el Host lo manda el cliente
para que el servidor web sepa qué dominio quieres. Pero no el servidor
en sus respuestas.
Lo que hacen los navegadores es, básicamente, si recibe una respuesta
30[12] ir a donde indique la cabecera "Location". El "Host" aquí no
pinta mucho, supongo que sería ignorado.
>
> alguna idea?
Lo que se suele hacer es, en la web antigua, editar el php en el que
esté la información de la base de datos y cambiarla por la ip nueva.
Así, el contenido dinámico si estaría actualizado, que por lo que he
entendido es lo que te importa. A ver si te vale.
>
> thx.
>
> agur!
> split.
>
Venga aio,
--
yUnwEb
--------------------------------------------------------------------
wget -O - http://yunweb.homeunix.org/yunweb.asc | gpg --import
Key fingerprint = ADAE EEFC BD78 6CBB B76B 1662 2195 FF19 5324 14AB
--------------------------------------------------------------------
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : signature.asc
Tipo : application/pgp-signature
Tamaño : 189 bytes
Descripción: no disponible
Url : https://listas.deusto.es/mailman/private/eside-ghost/attachments/20060608/11159695/signature.bin
Más información sobre la lista de distribución eside-ghost