Мудрые доменные страницы по умолчанию без виртуального хостинга на Apache 2

У меня есть почтовый сервер, который размещает электронную почту для нескольких доменов и предоставляет услуги веб-почты. Для каждого из доменов была создана запись A (mail.domain-name.com), которая указывает на этот сервер. Сервер запускает веб-сервер Apache. Как я могу обслуживать разные веб-страницы по умолчанию (например, index.html) для каждого из имен хостов без настройки виртуальных хостов? Идея состоит в том, чтобы позволить пользователям попасть на страницу приветствия для конкретного домена, которая затем дала бы им ссылку на общие веб-интерфейсы почты и другие службы на сервере. Например,

http://mail.domain1.com/ должен обслуживать index1.html

http://mail.domain2.com/ должен обслуживать index2.html

http://mail.domain3.com/ должен обслуживать index3.html

и так далее, где эти страницы находятся под одним корнем документа.

Благодарю.

1 ответ

Решение

Вместо использования index.html используйте индексную страницу серверного языка сценариев (например, PHP). Сценарий может определять имя хоста, используемое из заголовков HTTP, и отображать правильную информацию.

Для PHP переменная вам нужна $_SERVER['HTTP_HOST']

Кроме того, вы можете следовать документации Apache для создания динамических виртуальных хостов, используя правила перезаписи. Вот их пример:

RewriteEngine on

RewriteMap    lowercase int:tolower

RewriteCond   ${lowercase:%{HTTP_HOST}}   ^www\.([^.]+)\.example\.com$
RewriteRule   ^(.*) /home/%1/www$1
Другие вопросы по тегам