Eu construo o wordpress em wise.host22.com/wp, ele pode ser visitado wisdom.host22.com/wp
no 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
O endereço IP do domínio é 31.170.160.189 do resultado do ping.
Não pode ser visitado para inserir 31.170.160.189/wp no Firefox, por quê? Quando inserir 31.170.160.189/wp
no firefox, o URL irá pular para
http://error404.000webhost.com/,why?
Responder1
Seu aplicativo WordPress é provavelmente um entre muitos sites hospedados em host22.com
.
Existe um servidor web escutando IP 31.170.160.189
e servindo a sua e todas as outras páginas.
Se o servidor for consultado diretamente pelo seu IP, como ele saberá qual site servir? O IP não pertence exclusivamente ao seu subdomínio. Como resultado, você está sendo redirecionado para uma 404 NOT FOUND
página.
Quando é consultado por um nome de host adequado, como wisdom.host22.com
, ele sabe o que fazer, porque o nome do host faz parte da solicitação HTTP que o navegador faz. Servir conteúdo dependendo do cabeçalho da solicitação é uma técnica comum geralmente chamada de "Host Virtual". Desta forma, o servidor web pode fornecer muitos sites diferentes a partir do mesmo endereço IP.
Você pode experimentar a diferença de comportamento na linha de comando
Primeiro, vamos solicitar o recurso /wp
do servidor web e enviar seu endereço 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 esperado, o servidor responde servindo uma 404
página.
Agora faça o mesmo, mas Host
configurado corretamente para o seu subdomínio
$ 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
Desta vez, o servidor pode cumprir (código de status 200 OK
) e veicular sua página inicial do WordPress.
O netcat
comando abre uma conexão com o servidor na porta 80. Em seguida, a solicitação (a echo
parte) é enviada ao servidor. HTTP é um protocolo de texto simples. Você pode simplesmente "falar" com o servidor.
Responder2
Quando você envia uma solicitação HTTP para um servidor, há uma linha de host incluída nele; quando o Apache recebe isso, ele a envia para qualquer host virtual que tenha sido definido para esse endereço, conforme explicado aqui:
https://serversforhackers.com/configurando-apache-virtual-hosts
Portanto, se no servidor que você criou houver um host virtual para sabedoria.host22.com, digitar o nome do host o levará até lá, mas digitar o ip o levará ao host virtual padrão, que neste caso parece não estar definido.
Espero que isso tenha ajudado.