Wenn Sie namensbasierte virtuelle Hosts verwenden, wird standardmäßig die erste virtuelle Host-Konfiguration geladen (Quelle: Apache Wiki ). In der folgenden Konfiguration stimmen beispielsweise nicht übereinstimmende Domänen überein mit domain-one.com
:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName domain-one.com
# Other options and directives ..
</VirtualHost>
<VirtualHost *:80>
ServerName domain-two.com
# Other options and directives ..
</VirtualHost>
Viele Server haben keine monolithische Konfigurationsdatei, sondern mehrere hostspezifische Konfigurationsdateien, die wie folgt organisiert sind:
/etc/apache2
|-- sites_available (actual configuration files)
`-- sites_enabled (symlinks to files in sites_available)
Um in diesem Fall eine bestimmte Konfiguration des virtuellen Hosts zuerst zu laden, benennen Sie den Symlink in etwas um, das beim Sortieren zuerst angezeigt wird, z 00-default
.
Einige der anderen Antworten sind nicht ganz richtig. Laut dem Apache-Wiki ist es falsch, in einem virtuellen Host keinServerName
einzurichten. Wenn der Host ohne a ServerName
nicht zuerst geladen wird, wird er möglicherweise von Apache nicht einmal verwendet, da der zuerst geladene Host der Standard ist.
Darüber hinaus ServerAlias *
werden zwar alle Übereinstimmungen berücksichtigt, es können jedoch auch andere später definierte virtuelle Hosts außer Kraft gesetzt werden. Möglicherweise funktioniert dieser Ansatz, wenn immer der letzte virtuelle Host definiert wird (wie in der in der Frage angegebenen Konfiguration). Dies bedeutet jedoch, dass eine neue Direktive hinzugefügt und die Sortierreihenfolge geändert wird, anstatt nur die Reihenfolge wie oben zu ändern.