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

Виртуальный хост Apache на основе CNAME

Могу ли я сделать vhost на apache для ответа на запрос cname? Например:

A-запись example.com - 1.2.3.4
foo.example.com - это CNAME для example.com

в http.conf:

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www
</VirtualHost>

<VirtualHost foo.example.com>
 ServerName foo.example.com
 DocumentRoot /foo/www
</VirtualHost>

apache запускается нормально и переваривает мой conf, но когда я захожу на foo.example.com, я получаю содержимое в / var / www, а не в / foo / www. Я думаю, что здесь я ошибаюсь.

Следующий фрагмент должен работать (без предупреждения):

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost *:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

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

Вы пробовали добавить номер порта на vhost foo.example.com?

то есть:

<VirtualHost foo.example.com:80>
    ServerName foo.example.com
    DocumentRoot /foo/www
</VirtualHost>

У меня это работает так:

NameVirtualHost _default_:80

<VirtualHost _default_:80>
  ServerName example.com
  DocumentRoot /var/www
</VirtualHost>

<VirtualHost _default_:80>
 ServerName foo.example.com
 DocumentRoot /foo/wwww
</VirtualHost>

Хотя это дает предупреждение при запуске http:

[warn] NameVirtualHost _default_:80 has no VirtualHosts