Назад | Перейти на главную страницу

Настройка apache на основе имени

Я пытаюсь показать страницу при посещении домена, но если кто-то пытается зайти напрямую по 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>