Apache2-IP-Umleitung steht im Konflikt mit der Subdomänen-Umleitung

Apache2-IP-Umleitung steht im Konflikt mit der Subdomänen-Umleitung

Der Besuch meiner Website example.comfunktioniert also wie vorgesehen. Ich habe erfolgreich eine Weiterleitung konfiguriert, die abc.example.comzu weiterleitet example.com/abc.

Die Konfigurationsdatei sieht folgendermaßen aus abc.example.com.conf:

<VirtualHost *:80>
    ServerName abc.example.com
    RedirectPermanent / https://example.com/abc
</VirtualHost>

Mein Problem:

Wenn ich meine Website besuche und die rohe IP-Adresse in den Browser eingebe, werde ich ebenfalls zu weitergeleitet, example.com/abcwas nicht das gewünschte Verhalten ist. Die rohe IP im Browser sollte mich beiexample.com

Hier ist die example.com.confDatei:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Was muss ich ändern, damit beim Eintippen meine IP-Adresse example.comstatt bereitgestellt wird abc.example.com?

Antwort1

Dies liegt daran, dass einer Ihrer virtuellen Hosts als Standard fungiert. Wenn der ServerNameauf Serverebene (also nicht in einem VirtualHostBlock) mit einem innerhalb eines übereinstimmt VirtualHost, wird dies der Standard sein. Wenn keiner festgelegt ist, ist dies normalerweise der erste virtuelle Host.

Angenommen, Sie verwenden eine reine Vhost-Konfiguration, dann besteht die Antwort darin, ServerName example.com(und das entsprechende Listen) außerhalb des Vhost-Blocks festzulegen.

Referenz:https://httpd.apache.org/docs/2.4/vhosts/name-based.html

Hauptmoderator geht

Alle Anfragen, die nicht mit einer bestehenden übereinstimmen, werden von der globalen Serverkonfiguration verarbeitet, unabhängig vom Hostnamen oder Servernamen.

Wenn Sie einem vorhandenen Server einen namensbasierten virtuellen Host hinzufügen und die Argumente des virtuellen Hosts mit bereits vorhandenen IP- und Portkombinationen übereinstimmen, werden Anfragen nun von einem expliziten virtuellen Host verarbeitet. In diesem Fall ist es normalerweise ratsam, einen standardmäßigen virtuellen Host mit einem Servernamen zu erstellen, der mit dem des Basisservers übereinstimmt. Neue Domänen mit derselben Schnittstelle und demselben Port, die jedoch separate Konfigurationen erfordern, können dann als nachfolgende (nicht standardmäßige) virtuelle Hosts hinzugefügt werden.

verwandte Informationen