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

VirtualHosts с поддоменом доменных имен с подстановочными знаками. *

Я пытаюсь настроить виртуальные хосты на Apache, которые реагируют на определенные поддомены, но любое доменное имя

Такие как

субдомен. *

поэтому любой домен, который указывает на машину вместе с субдоменом, будет работать

ServerName web. * ...

Таким образом, web.blahblah.com и web.mooose.com будут работать (и * .blahblah.com, и * .mooose.com относятся к одному и тому же компьютеру)

Следующий фрагмент должен помочь:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName subdomain
  ServerAlias subdomain.*
  # other directives for the particular vhost
</VirtualHost>

См. Документацию по ServerAlias и Поддержка виртуального хоста на основе имени для подробностей.

Это совсем не должно быть сложно.

По умолчанию Apache будет отвечать на весь трафик на любом порту, на который вы его настроили.

Просто установите его для прослушивания порта 80 на IP-адресе, которому назначены адреса.

Настройте виртуальный хост с другим каталогом и именем хоста для каждого именованного сайта, и они должны иметь приоритет над подстановочным знаком.

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

На всякий случай я бы поместил названные сайты над подстановочным знаком в httpd.conf

Я не уверен, можно ли использовать массовые хосты (apache2). я никогда раньше не делал ничего подобного. http://httpd.apache.org/docs/2.0/vhosts/mass.html

Чего именно вы хотите достичь с помощью этого решения?

Вы не можете использовать подстановочные знаки с ServerName.

Что вы можете сделать, так это использовать VirtualHost по умолчанию в качестве универсального:

<VirtualHost *:80>
  # NEVER add a ServerName in this VirtualHost
(...)
</VirtualHost>

Пока нет VirtualHost для web.blahblah.com, а также для web.mooose.com, они оба будут работать с этим VirtualHost по умолчанию.

Вы также можете использовать перезапись для перенаправления запросов на разные URL-адреса:

  RewriteCond %{HTTP_HOST}      ^web.moose.com$
  RewriteRule ^/(.*)$ http://other.moose.com/web/$1 [R,L]

Надеюсь, это поможет.

Ура