/etc/httpd/conf.d/vhosts.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/vhosts/main-repo-dir"
ServerName example.io
ErrorLog "logs/example.io-error_log"
CustomLog "logs/example.io-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
ServerName dev.example.io
ErrorLog "logs/dev.example.io-error_log"
CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>
Dies funktioniert, aber wenn ich die Sternchen durch eine URL ersetze, DocumentRoot
erscheint standardmäßig Folgendes /var/www/html
:
<VirtualHost example.io:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/vhosts/main-repo-dir"
ServerName example.io
ErrorLog "logs/example.io-error_log"
CustomLog "logs/example.io-access_log" common
</VirtualHost>
<VirtualHost dev.example.io:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
ServerName dev.example.io
ErrorLog "logs/dev.example.io-error_log"
CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>
/etc/hosts
:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
127.0.0.1 example.io
127.0.0.1 dev.example.io
Ich habe kein Problem damit, ein Sternchen zu verwenden, ich möchte nur verstehen, warum ich das in diesem Szenario tun muss.
Antwort1
Dieser Abschnitt definiert nur die IPs, die diesen virtuellen Host erreichen können. In diesem Fall <VirtualHost *:80>
bedeutet das, dass Apache allen Netzwerkschnittstellen den Zugriff auf diesen virtuellen Host gestattet. Ich denke, Sie erleben das Verhalten, dass Sie zum Standard-Dokumentstamm gelangen, weil keiner der von Ihnen festgelegten virtuellen Hosts geöffnet ist.