域名和 IP 应该有不同的 DocumentRoot

域名和 IP 应该有不同的 DocumentRoot

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>

相关内容