Домен указывает на IP / Сервер. Но мне нравится иметь разные documentRoots, если доступ к серверу осуществляется через IP или через домен. Поэтому я строю такую конфигурацию:
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 или домену приведет к той же странице. Что я сделал не так?
В вашей конфигурации есть один виртуальный хост с именем сервера example.com, однако у другого виртуального хоста нет директивы имени сервера.
Допустим, ваш IP-адрес 10.0.0.1
Вам необходимо указать имя сервера 10.0.0.1 для виртуального хоста, на который вы хотите ответить на этот ip.
Что-то вроде этого:
<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>