Могу ли я сделать 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