Domain 指向 IP / 服务器。但如果服务器是通过 IP 或通过 Domain 访问的,我喜欢使用不同的 documentRoots。因此我构建了此配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin foo@bar
DocumentRoot /var/www/localhost
<Directory /var/www/localhost>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin foo@bar
ServerName example.org
ServerAlias example.org
DocumentRoot /var/www/example.org
<Directory /var/www/example.org>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
问题是访问 IP 或域名都会转到同一个页面。我做错了什么?
答案1
您的配置有一个虚拟主机,其服务器名称为 example.com,但是另一个虚拟主机没有服务器名称指令。
假设你的 IP 是 10.0.0.1
您需要为想要响应该 IP 的虚拟主机提供服务器名称 10.0.0.1。
像这样:
<VirtualHost *:80>
ServerAdmin foo@bar
ServerName 10.0.0.1
DocumentRoot /var/www/localhost
<Directory /var/www/localhost>
Options -Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>