apache default virtualhost funktioniert nicht

718
peter

Ich habe zwei Websites für meine vps eingerichtet: eine ist http site example2.com, die andere ist https site example1.com:

Listen 80 Listen 443  <virtualhost *:443> ServerName example1.com DocumentRoot "/var/www/example1.com" </virtualhost>  <virtualhost *:80> ServerName example2.com DocumentRoot "/var/www/example2.com" </virtualhost> 

Wenn ich jetzt http://example1.com besuche, öffne ich tatsächlich http://example2.com . Wie kann ich damit aufhören? Ich denke, http://example1.com ist nicht zugänglich. Ich habe versucht, einen Standard-Virtualhost hinzuzufügen, in der Hoffnung, dass http://example1.com die Datei /var/www/default/index.html öffnet. Dies hat jedoch nicht geholfen. http://example1.com leitet immer zu http://example2.com um :

Listen 80 Listen 443  <virtualhost *> DocumentRoot "/var/www/default" </virtualhost>  <virtualhost *:443> ServerName example1.com DocumentRoot "/var/www/example1.com" </virtualhost>  <virtualhost *:80> ServerName example2.com DocumentRoot "/var/www/example2.com" </virtualhost> 
0
Warum haben Sie Port 443 für example1.com ausgewählt? Haben Sie SSL konfiguriert? Gerard H. Pille vor 6 Jahren 0

2 Antworten auf die Frage

0
Gerard H. Pille

Wenn Sie http: // verwenden, stellen Sie eine Verbindung zu Port 80 her. An Port 80 haben Sie nur example2.com, das alle Anforderungen für Port 80 behandelt. Versuchen Sie Folgendes:

https://example1.com 

https stellt standardmäßig eine Verbindung zu Port 443 her. Sie können die Standardeinstellungen überschreiben, indem Sie den Port angeben.

http://example1.com:443/ 
0
Anaksunaman

Wenn ich jetzt http://example1.com besuche, öffne ich tatsächlich http://example2.com .

Dies liegt (teilweise) daran, dass Port 80 und Port 443 nicht automatisch austauschbar sind. Es gibt (im Allgemeinen) keine Mechanismen zum automatischen Umleiten von Anforderungen von einem Port zu einem anderen, es sei denn, Sie geben dieses Verhalten auf dem Server selbst an (beachten Sie, dass einige Browser-Plugins oder Funktionen, die HTTPS-Verbindungen erzwingen, ausgeschlossen sind).

Ich vermute, dass http://example1.com nicht erreichbar ist.

Das ist richtig. Wenn Sie nicht einen virtuellen HTTP-Host auf Port 80 mit dieser Domäne definieren, ist er nicht vorhanden und daher kann nicht darauf zugegriffen werden ("Standardhosts" werden vergessen). Ich gehe davon aus, dass Sie example1.com auch in Ihrer "hosts" -Datei oder im DNS definiert haben .

Ich habe versucht, einen virtuellen Standardhost [...] hinzuzufügen, aber das hat nicht geholfen.

Es könnten andere Probleme mit Ihrer Konfiguration auftreten. Was Sie jedoch am ehesten benötigen (zumindest um zu beginnen), ist ein tatsächlicher Eintrag für einen virtuellen Host, der http://example1.com entspricht :

Listen 80 Listen 443  # Virtual Hosts For Basic HTTP Services  <VirtualHost *:80>  ServerName example1.com  # We can use * to catch all sub-domains other than e.g. www # ServerAlias www.example1.com *.example1.com  ServerAlias www.example1.com  # DocumentRoot "/var/www/example1.com" # DocumentRoot "/var/www/default"  # If we get any requests on port 80 for example1.com  # redirect them to e.g. http://www.example1.com:443/  Redirect permanent / http://www.example1.com:443/  </VirtualHost>  # This is not an SSL (HTTPS) virtual host  <VirtualHost *:443> ServerName example1.com DocumentRoot "/var/www/example1.com" </VirtualHost>  # Our other domain  <VirtualHost *:80> ServerName example2.com DocumentRoot "/var/www/example2.com" </VirtualHost>