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

Субдомен не загружается на Apache, только основной сайт

Я часами борюсь с этой странной проблемой. Я думаю, у меня все файлы в порядке и все должно работать, но это не так. у меня есть

Это должны быть два разных веб-сайта.

Это мои файлы конфигурации (Ubuntu 10.04):

apache2.conf:

Include /etc/apache2/sites-enabled/ 
Include /opt/subdomain.conf

ports.conf:

NameVirtualHost 123.123.123.123:80
Listen 80

/ etc / apache2 / sites-enabled / 000-default:

<VirtualHost 123.123.123.123:80>
    DocumentRoot /home/landing/www
    <Directory /home/landing/www>
        Options None
        AllowOverride None
    </Directory>
</VirtualHost>

-> НЕ указывать ServerName. Ловит запросы на IP и действительно открывает / home / Landing / www

/ и т. д. / apache2 / с поддержкой сайтов / домен1:

<VirtualHost 123.123.123.123:80>
    ServerName domain1.com
    DocumentRoot /home/domain1/www
    ServerAlias www.domain1.com
    <Directory /home/domain1/www>
    Options None +FollowSymLinks
        Order Allow,Deny
        Allow from All
    </Directory>
</VirtualHost>

-> Это для основного сайта. Открывается нормально, также с www.domain.com

/opt/subdomain.conf:

<VirtualHost 123.123.123.123:80>
ServerName subdomain.domain1.com
DocumentRoot "/opt/subdomain/www"
</VirtualHost>

-> Вот в чем проблема. Это НЕ открывается. Вместо этого открывается / home / Landing / www ...? Это происходит, когда я открываю ЛЮБОЙ поддомен, поэтому вся эта конфигурация игнорируется. Кто-нибудь знает, почему? Или как проверить ??

Насколько я понимаю, это связано с тем, что ServerName не используется в вашем первом VirtualHost.

Вы не можете смешивать виртуальный хостинг на основе имени и безымянного виртуального хостинга в apache, это чертовски сбивает с толку, apache сделает «все возможное», чтобы сопоставить домен, следуя порядку конфигурации.

Рекомендуемый способ сделать виртуальный хост по умолчанию - по-прежнему иметь в нем ServerName (как и должно быть), но изменить строку VirtualHost с

<VirtualHost 123.123.123.123:80>
    DocumentRoot /home/landing/www

к этому

<VirtualHost _default_:80>
    DocumentRoot /home/landing/www
    ServerName blablabla