Apache не должен сопоставлять домены без поддоменов

Я не особенно хороший админ, но программист. Тем не менее, мне нужно настроить этот веб-сервер apache прямо сейчас.

У меня есть домен abc.sub.domain.com и VHOST, соответствующий этому домену. Но VHOST также соответствует sub.domain.com, что должно привести только к странице Apache по умолчанию, а не к моему каталогу приложений.

Вот моя конфа

<VirtualHost *:80>
    ServerName abc.sub.domain.com
</VirtualHost>

Include /path/to/local/config/httpd-vufind.conf

Приложение (с открытым исходным кодом) строит всю свою конфигурацию на переменных среды, поэтому мне нужно включить этот файл конфигурации. Этот файл, кажется, включен всегда, независимо от домена.

Теперь я хочу отключить это включение, пока домен не полностью совпадает.

Затем я хотел бы настроить VHOST по умолчанию, который соответствует только sub.domain.com. На этом домене должны работать phpMyadmin и подобные инструменты.

Вот как выглядит мой VHOST по умолчанию. Под sites-anebled it's called000-по умолчанию` и находится на первой позиции.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName sub.domain.com   
    DocumentRoot /var/www
    <Directory /var/www>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

Но это не помогает решить мою проблему. sub.domain.com по-прежнему направляется в первую конфигурацию VHOST (с оператором include). Как я могу включить только, если домен совпадает?


person Corni    schedule 26.05.2015    source источник


Ответы (1)


По умолчанию apache сопоставляет самый первый VirtualHost для любого несопоставленного ServerName. Добавьте еще один раздел VirtualHost над вашим, и он поймает любой несопоставимый хост. Другие виртуальные хосты с указанными именами добавляются дальше.

person umka    schedule 26.05.2015
comment
Как добавить их выше? Я использую a2ensite для включения vhosts. И я уже пытался использовать vhost по умолчанию, который был добавлен как 000-default как первая запись в списке. Это не помогло. - person Corni; 27.05.2015
comment
Я добавил свою конфигурацию VHOST по умолчанию, которая не решает проблему. - person Corni; 28.05.2015
comment
Постарайтесь понять порядок загрузки виртуальных хостов и файлов конфигурации. Сначала apache загружает main httpd.conf. Если определены несколько виртуальных хостов, первый из них становится по умолчанию и соответствует любому запросу для несуществующих доменов. Затем apache повторяет эту итерацию для каждого включенного файла в том порядке, в котором они следуют в httpd.conf, и так далее. - person umka; 28.05.2015
comment
В моей системе Debian нет httpd.conf. Когда я раскомментирую include, все работает (кроме целевого программного обеспечения). Кажется, что include выполняется, но его ServerName не совпадает. Вероятно, потому что это не внутри оператора <VirtualHost>. - person Corni; 28.05.2015
comment
Большое спасибо. Включение конфигурации VHOST в apache2.conf (до включения каталога vhosts) помогло - person Corni; 28.05.2015