1

Я не уверен, как решить мою проблему. Дело в том, что мой Apache2 настроен на обслуживание 3 разных виртуальных хостов. Это зависит от доменов.

Конфиг:

NameVirtualHost example.eu:80
<VirtualHost example.eu:80>
        DocumentRoot /var/www2
        ServerName www.example.eu
        # Other directives here
</VirtualHost>

NameVirtualHost example.de:80
<VirtualHost example.de:80>
    DocumentRoot /var/www3/drupal
    ServerName www.example.de
</VirtualHost>

NameVirtualHost test.de:80
<VirtualHost test:80>
    DocumentRoot /var/www1/drupal
    ServerName test.de
</VirtualHost>

Если я зайду на www.example **. De **, я приду к примеру **. Eu ** (первый настроенный VirtualHost). То же самое с test.de. Кажется, www. неверно истолкован этим конфигом. Что мне нужно сделать, чтобы Apache2 справился с этим правильно, чтобы с и без "www." Я получаю, где я хочу - каждый раз. Все записи DNS отправляются на один и тот же IP-адрес сервера Apache2. Сервер должен обрабатывать запросы соответственно. С префиксом "www" и без него.

Best, WW

1 ответ1

2

Вы неправильно поняли, что означает имя хоста в директиве <VirtualHost> . Он относится к IP-адресу, на котором виртуальный хост "слушает" (Apache может преобразовывать имена в IP-адрес). Итак, я рекомендую вам следующую конфигурацию:

NameVirtualHost *:80
<VirtualHost *:80>
        DocumentRoot /var/www2
        ServerName example.eu
        ServerAlias www.example.eu
        # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www3/drupal
    ServerName example.de
    ServerAlias www.example.de
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www1/drupal
    ServerName test.de
    ServerAlias www.test.de
</VirtualHost>

Вы должны использовать NameVirtualHost domain.name:80 или NameVirtualHost 1.2.3.4:80 если ваш виртуальный хост прослушивает IP-адрес, отличный от значения по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .