У меня Apache работает на сервере Ubuntu (14.04). Я настроил записи DNS A и VH, чтобы иметь один домен и два поддомена, вот так:
- example.com
- subdomain1.example.com
- subdomain2.example.com
Все работает нормально, но проблема в том, что когда я пытаюсь получить доступ к своему веб-сайту с IP-адреса сервера, браузер показывает содержимое subdomain1.example.com вместо содержимого example.com. Этого не произойдет, если я наберу example.com, в этом случае все будет хорошо, но я беспокоюсь, может ли это стать проблемой в будущем или я что-то сделал не так ...
Вот моя конфигурация Apache VH для example.com и subdomain1.example.com (subdomain2 точно такой же, как subdomain1):
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin contact@example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain1.example.com
ServerAdmin contact@example.com
DocumentRoot /var/www/subdomain1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Надеюсь, я хорошо объяснил ... Спасибо!
Когда запрос получен, сервер сначала сопоставляет его с наилучшим соответствием только на основе локального IP-адреса и комбинации порта. Не-подстановочные знаки имеют более высокий приоритет. Если совпадения по IP и порту не происходит, используется «основная» конфигурация сервера.
Если несколько виртуальных хостов содержат наиболее подходящий IP-адрес и порт, сервер выбирает из этих виртуальных хостов наилучшее совпадение на основе запрошенного имени хоста. Если соответствующий виртуальный хост на основе имени не найден, будет использоваться первый виртуальный хост в списке, который соответствует IP-адресу. Как следствие, первый виртуальный хост в списке для данной комбинации IP-адреса и порта является виртуальным хостом по умолчанию для этой комбинации IP-адреса и порта.
Это в основном означает, что первый VirtualHost, обнаруженный в httpd.conf
будет использоваться по умолчанию, или если все виртуальные хосты находятся в отдельных (включены) .conf
файлы (что, вероятно, ваш случай), затем сначала по алфавиту .conf
файл будет использоваться.
TL; DR: попробуйте переименовать .conf
файл, содержащий example.com
Виртуальный хост для aaa.conf
(и перезапустите httpd)