Construyo WordPress en Wisdom.host22.com/wp, se puede visitar wisdom.host22.com/wp
en Firefox.
ping wisdom.host22.com
PING wisdom.host22.com (31.170.160.189) 56(84) bytes of data.
64 bytes from 31.170.160.189: icmp_seq=1 ttl=46 time=307 ms
La dirección IP del dominio es 31.170.160.189 según el resultado del ping.
No se puede visitar para ingresar 31.170.160.189/wp en Firefox, ¿por qué? Cuando ingrese 31.170.160.189/wp
en Firefox, la URL saltará a
http://error404.000webhost.com/,why?
Respuesta1
Su aplicación de WordPress es probablemente uno entre muchos sitios web alojados en host22.com
.
Hay un servidor web que escucha en IP 31.170.160.189
y sirve la suya y todas las demás páginas.
Si el servidor es consultado directamente por su IP, ¿cómo se supone que sabe qué sitio web servir? La IP no pertenece exclusivamente a tu subdominio. Como resultado, se le redirigirá a una 404 NOT FOUND
página.
Cuando lo consulta un nombre de host adecuado como wisdom.host22.com
, sabe qué hacer, porque el nombre de host es parte de la solicitud HTTP que realiza el navegador. Servir contenido dependiendo del encabezado de la solicitud es una técnica común generalmente denominada "Host virtual". De esta manera, el servidor web puede proporcionar muchos sitios web diferentes desde la misma dirección IP.
Puedes probar la diferencia de comportamiento desde la línea de comando.
Primero, solicitemos el recurso /wp
del servidor web y enviemos su dirección IP como Host
:
$ echo -e "GET /wp/ HTTP/1.1\nHost: 31.170.160.189\n" | netcat 31.170.160.189 80
HTTP/1.1 302 Found
Date: Sun, 11 Oct 2015 09:05:30 GMT
Server: Apache
Location: http://error404.000webhost.com/?
Content-Length: 216
Connection: close
Content-Type: text/html; charset=iso-8859-1
Como era de esperar, el servidor responde entregando una 404
página.
Ahora haz lo mismo, pero Host
configurando correctamente tu subdominio.
$ echo -e "GET /wp/ HTTP/1.1\nHost: wisdom.host22.com\n" | netcat 31.170.160.189 80
HTTP/1.1 200 OK
Date: Sun, 11 Oct 2015 09:08:50 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
X-Pingback: http://wisdom.host22.com/wp/xmlrpc.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
Esta vez, el servidor puede cumplir (código de estado 200 OK
) y sirve su página de inicio de WordPress.
El netcat
comando abre una conexión con el servidor en el puerto 80. Luego, la solicitud (la echo
parte) se envía al servidor. HTTP es un protocolo de texto plano. Puedes simplemente "hablar" con el servidor.
Respuesta2
Cuando envía una solicitud HTTP a un servidor, se incluye una línea de host; cuando Apache la recibe, la envía a cualquier host virtual que se haya definido para esa dirección, como se explica aquí:
https://serversforhackers.com/configuring-apache-virtual-hosts
Entonces, si en el servidor que creó hay un host virtual para Wisdom.host22.com, escribir el nombre del host lo llevará allí, pero escribir la IP lo llevará al host virtual predeterminado, que en este caso parece no estar definido.
Espero que esto haya ayudado.