warum kann mein Blog nicht mit der IP-Adresse besucht werden?

warum kann mein Blog nicht mit der IP-Adresse besucht werden?

Ich erstelle WordPress auf wisdom.host22.com/wp, es kann mit wisdom.host22.com/wpFirefox aufgerufen werden.

Bildbeschreibung hier eingeben

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

Die IP-Adresse der Domäne lautet laut Ping-Ergebnis 31.170.160.189.

Es kann nicht aufgerufen werden, um 31.170.160.189/wp in Firefox einzugeben, warum? Wenn man es 31.170.160.189/wpin Firefox eingibt, springt die URL in http://error404.000webhost.com/,why?

Bildbeschreibung hier eingeben

Antwort1

Ihre WordPress-Anwendung ist wahrscheinlich eine von vielen Websites, die bei gehostet werden host22.com.

Es gibt einen Webserver, der auf der IP lauscht 31.170.160.189und Ihre und alle anderen Seiten bereitstellt.

Wenn der Server direkt über seine IP abgefragt wird, woher soll er dann wissen, welche Website er bedienen soll? Die IP gehört nicht ausschließlich zu Ihrer Subdomain. Infolgedessen werden Sie auf eine 404 NOT FOUNDSeite umgeleitet.

Wenn es von einem richtigen Hostnamen wie abgefragt wird wisdom.host22.com, weiß es, was zu tun ist, da der Hostname Teil der HTTP-Anforderung des Browsers ist. Inhalte abhängig vom Anforderungsheader bereitzustellen ist eine gängige Technik, die normalerweise als „virtueller Host“ bezeichnet wird. Auf diese Weise kann der Webserver viele verschiedene Websites von derselben IP-Adresse aus bereitstellen.

Sie können den Unterschied im Verhalten von der Kommandozeile aus ausprobieren

Fordern wir zunächst die Ressource /wpvom Webserver an und senden ihre IP-Adresse wie folgt 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

Wie erwartet antwortet der Server mit der Bereitstellung einer 404Seite.

Machen Sie jetzt dasselbe, aber mit den Hostrichtigen Einstellungen für Ihre Subdomain

$ 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

Dieses Mal kann der Server den Statuscode einhalten 200 OKund stellt Ihre WordPress-Homepage bereit.

Der netcatBefehl öffnet eine Verbindung zum Server auf Port 80. Anschließend echowird die Anfrage (der Teil) an den Server gesendet. HTTP ist ein Klartextprotokoll. Sie können einfach mit dem Server „sprechen“.

Antwort2

Wenn Sie eine HTTP-Anfrage an einen Server senden, ist darin eine Host-Zeile enthalten. Wenn Apache diese empfängt, sendet er sie an den für diese Adresse definierten virtuellen Host, wie hier erläutert:

https://serversforhackers.com/configuring-apache-virtual-hosts

Wenn es auf dem von Ihnen erstellten Server also einen virtuellen Host für wisdom.host22.com gibt, gelangen Sie durch Eingabe des Hostnamens dorthin, durch Eingabe der IP gelangen Sie jedoch zum virtuellen Standardhost, der in diesem Fall anscheinend nicht definiert war.

Ich hoffe, das hat geholfen.

verwandte Informationen