Я пытаюсь показать страницу при посещении домена, но если кто-то пытается зайти напрямую по ip (а не с использованием домена), я хочу показать ему другую страницу.
Классический хостинг Apache на основе имени, верно?
Ну, мой единственный вопрос - что я должен указать в ServerName и / или ServerAlias?
До сих пор я раскомментировал эту строку:
NameVirtualHost *:80
и я установил 2 таких виртуальных хоста (конкретная информация скрыта):
<VirtualHost *:80>
ServerAdmin someone@gmail.com
DocumentRoot /var/www/vhosts/default/
ServerName {my-dedicated-ip}
ErrorLog /var/www/vhosts/default/error.log
CustomLog /var/www/vhosts/default/custom.log gk
</VirtualHost>
<VirtualHost *:80>
ServerAdmin some-email@valid-domain.com
DocumentRoot /var/www/vhosts/something/httpdocs/
ServerName valid-domain.com
ServerAlias *.valid-domain.com
ErrorLog "| /usr/sbin/rotatelogs -l /var/www/vhosts/something/logs/error.log.%Y.%m.%d 86400"
CustomLog "| /usr/sbin/rotatelogs -l /var/www/vhosts/somthing/logs/custom.log.%Y.%m.%d 86400" gk
</VirtualHost>
но, к сожалению, это не работает.
Заранее спасибо.
РЕДАКТИРОВАТЬ: О, и у меня есть один выделенный IP-адрес.
Я также только что нашел это: Как я могу заставить Apache не отвечать на IP-запрос? согласно которому моя установка должна работать. Он должен посетить первый найденный vhost. Но это не так. Он идет ко второму.
РЕДАКТИРОВАТЬ: вывод apachectl -S:
[root@me conf.d]# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain.com (/etc/httpd/conf/httpd.conf:1015)
port 80 namevhost {my-dedicated-ip} (/etc/httpd/conf/httpd.conf:1015)
port 80 namevhost valid-domain.com (/etc/httpd/conf/httpd.conf:1023)
wild alias *.vaild-domain.com
Syntax OK
и да, 2 хоста находятся в одном файле.
В Apache 2.2 вы указываете значение по умолчанию виртуальный хост с _default_
директива, которая должна соответствовать как IP-адресу, так и всем доменным именам, которые явно не определены как ServerName или ServerAlias в последующих записях VirtualHost.
Например:
<VirtualHost _default_:80>
DocumentRoot /var/www/vhosts/default/
ServerName default
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/vhosts/something/httpdocs/
ServerName valid-domain.com
</VirtualHost>