Как настраивают апача (vhost) для Имени хоста сервера

В первую очередь, жаль о моем несовершенном английском языке. Но позвольте мне объяснить свою проблему с апачским vhosts.

Пример: Моим именем сервера является example.de (/etc/hostname). Если я настрою для этого определенного домена, то мой vhost не будет работать. Это кажется апачским использованием значение-по-умолчанию-vhost. Но мне нужно значение-по-умолчанию-vhost для страниц, которые не активны на моем сервере. Таким образом, я не могу использовать его для домена example.de

Мне нужно решение для следующей проблемы:

  • example.de - Должен указать на/var/www/example (Это не работает, потому что/etc/hostanme),
  • example2.de - Должен указать на/var/www/example2 (Это работает),
  • domain-i-got-but-not-active.de Должен указать на/var/www/default (Это работает, но также и ловит example.de),

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

Вот пример моего vhost:

 # For default-pages
 <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/default
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/default>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

# Doesn´t work, points to default (above code)
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName example.de
        DocumentRoot /var/www/example
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/example>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

# All fine
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName example2.de
        DocumentRoot /var/www/example2
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/example2>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
1
задан 25 November 2014 в 17:37

2 ответа

Согласно документация Apache :

, Если никакой ServerName не определяется, то сервер пытается вывести имя узла путем выполнения обратного поиска на IP-адресе.

Обратный поиск: Ищите IP-адрес для нахождения доменного имени для IP-адреса.

я предполагаю, что это - то, почему example.de подается Вашим значением по умолчанию VirtualHost, так попытайтесь добавить ServerName domain-i-got-but-not-active.de, и если это VirtualHost является определенным первым:

это имеет самый высокий приоритет, и могите рассматриваться как или основной сервер по умолчанию. Это означает, что, если запрос получен, который не соответствует одной из указанных директив ServerName, она будет подаваться этим первым VirtualHost.

1
ответ дан 11 November 2019 в 02:30
<VirtualHost *:80>
    DocumentRoot /var/www/example
    DirectoryIndex index.php
    ServerName example.de 
    setEnv DOMAIN_NAME example.de 
   <Directory "/var/www/example">
         Options Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         allow from all
         Require all granted
  </Directory>
  </VirtualHost>

попробуйте это

0
ответ дан 7 December 2019 в 16:27

Другие вопросы по тегам:

Похожие вопросы: