Ich habe eine Apache2-Konfiguration mit mehreren VirtualHosts. Mein DNS ist so eingestellt, dass es *.<domain>.<tld>
auf mehreren Domains akzeptiert wird . Alles funktioniert einwandfrei, aber wenn ich zu gehe, wird something-random-here.example.com
anscheinend ein ungültiger VirtualHost ausgewählt (ich vermute, der erste oder letzte wird gefunden). Gibt es eine Möglichkeit, Apache anzuweisen, bestimmte Regeln zu verwenden, wenn keiner der VirtualHost-Einträge mit der Domain oder Subdomain übereinstimmt? Am liebsten würde ich einen 404 zurückgeben.
12
ports.conf
. Es hat nicht funktioniert, weil ich versucht habe, mit *: 80 übereinzustimmen, als ich auf meinen virtuellen Hosts <ip>: 80 verwendet habe. Stattdessen musste ich für jede IP einen eigenen Standardeintrag erstellen und es funktioniert jetzt.Platzhalter enthalten Ihre Site-Konfigurationsdateien:
Organisieren Sie die Conf-Dateien Ihrer Site so, dass sie in der erwarteten Reihenfolge geladen werden. Beispiel...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
etc...
Apache liest diese der Reihe nach. Erstellen Sie dann einen, der immer zuletzt geladen wird, um nicht angepasste virtuelle Hosts abzufangen und einen 404-Wert zurückzugeben, anstatt eine Standardwebsite zu laden.
99-catchall-httpd.conf
Stellen Sie sicher, dass Sie die Ports durch die Ports ersetzen, an denen Ihr httpd empfangsbereit ist. Wenn Sie bestimmte Schnittstellen über httpd abhören, müssen Sie stattdessen für jede Schnittstelle einen Catchall hinzufügen, wie folgt:
Hoffe das hilft. Ich verwende diese Methode, um Websites in der angegebenen Reihenfolge zu laden und zu verhindern, dass nicht angepasste virtuelle Hosts eine unerwartete Website unbeabsichtigt laden.
quelle
Wie
Moritz Both
erwähnt, verwendet Apache2 den ersten virtuellen Host, den es findet, wenn er nicht mit dem von Ihnen angeforderten übereinstimmt.Wenn Sie Apache2 zum ersten Mal installieren, gibt es eine Standardwebsite conf, die Sie als Vorlage verwenden, ändern oder löschen können, und ich habe mich immer gefragt, wofür die 000-default.conf eigentlich gedacht ist, weil sie auch eine default.conf hat. Nachdem ich was gelesen habe
Moritz Both
Gesagte habe, macht es jetzt mehr Sinn.Was ich für meinen Server getan habe, war die Konfiguration für den Standard-Hostnamen (Website) in die Datei 000-default.conf und zu kopieren
a2ensite 000-default
.Jedes Mal, wenn eine nicht übereinstimmende Domain-Anfrage auf meiner Website eingeht, wird die 000-Standardseite bereitgestellt, bei der es sich nur um eine Kopie meiner tatsächlichen Standardseite handelt.
quelle
<VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost>
aber die URL bleibt gleich. Ich habe dasselbe für die nicht-ssl-Version gemacht und es leitet richtig um. Irgendwelche Ideen?