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

Требуется ли запись VirtualHost для CNAME, указывающей на тот же DocumentRoot?

www.example.com. 1800 В CNAME example.com.

other.example.com. 1800 В CNAME example.com.

Какой метод верен в Apache, если все записи указывают на один и тот же DocumentRoot?

Будет ли работать следующий метод?

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
</VirtualHost>

ИЛИ я должен создать запись VirtualHost для каждого CNAME?

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName www.example.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName other.example.com
</VirtualHost>

Ваш первый метод не будет работать надежно (только если это VirtualHost по умолчанию).
Ваш второй метод будет работать, но он дублирует конфигурацию - чего вы обычно не хотите.

Вы могли бы использовать ServerAlias (http://httpd.apache.org/docs/2.2/mod/core.html#serveralias) вместо этого:

<VirtualHost *:80>
        DocumentRoot "/some/place/"
        ServerName example.com
        ServerAlias www.example.com other.example.com
</VirtualHost>