1
  • Сервер: Debian 9
  • Веб-сервер: Apache2

Моя запись DNS A * .domain.tld к моему IP Я решаю мои apache vhosts с помощью макроса. Если я введу субдомен, который не существует, он отобразит страницу следующего файла vhost вместо страницы по умолчанию или ошибки.

Вот мой 000-default.conf

        ServerSignature Off
<Directory /home>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

        <VirtualHost *:80>
                DocumentRoot /var/www
        </VirtualHost>



<Macro Host $name $domain>
        <VirtualHost $domain:80>
                ServerName $domain
                ServerAlias www.$domain

                DocumentRoot /home/$name/html
                AssignUserID $name $name
                CustomLog /home/$name/logs/access.log vhost_combined
                ErrorLog /home/$name/logs/error.log
                <Directory /home/$name/html>
                        php_admin_value open_basedir /home/$name/html/:/var/lib/php/:/usr/share/php/:/usr/sbin/sendmail:/tmp
                        php_admin_value upload_tmp_dir /home/$name/html/tmp/
                        php_value upload_max_filesize 500M
                        php_value post_max_size 525M
                        php_value memory_limit 2000M
                        php_flag "output_buffering" Off
                </Directory>
        </VirtualHost>
</Macro>

<Macro SSLHost $name $domain>
<IfModule mod_ssl.c>
        <VirtualHost $domain:443>
                ServerName $domain
                ServerAlias www.$domain
                Alias /analytics /home/matomo/html

                DocumentRoot /home/$name/html
                AssignUserID $name $name
                CustomLog /home/$name/logs/access.log vhost_combined
                ErrorLog /home/$name/logs/error.log
                <Directory /home/$name/html>
                        php_admin_value open_basedir /home/$name/html:/var/lib/php/:/usr/share/php/:/usr/sbin/sendmail:/tmp
                        php_admin_value upload_tmp_dir /home/$name/html/tmp
                        php_value upload_max_filesize 500M
                        php_value post_max_size 525M
                        php_value memory_limit 2000M
                        php_flag "output_buffering" Off
                </Directory>
                Include /etc/letsencrypt/options-ssl-apache.conf
                ServerAlias $domain
                SSLCertificateFile /etc/letsencrypt/live/$domain/fullchain.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/$domain/privkey.pem
        </VirtualHost>
</IfModule>

и в качестве примера макрос vhost (001-sub.domain.tld.conf:

Use Host myXYuser sub.domain.tld
Use SSLHost myXYuser sub.domain.tld

Итак, в качестве примера теперь существует sub.domain.tld Когда я набираю «xy.domain.tld», он отображает sub.domain.tld .. Как я могу избежать этого?

Заранее спасибо,

1 ответ1

0

Apache 2.4 VirtualHost Примеры

Звездочки соответствуют всем адресам, поэтому главный сервер не обслуживает запросы. Поскольку виртуальный хост с именем ServerName www.example.com находится первым в файле конфигурации, он имеет самый высокий приоритет и может рассматриваться как сервер по умолчанию или основной сервер. Это означает, что если получен запрос, который не соответствует ни одной из указанных директив ServerName, он будет обработан первым.

Ваш первый экземпляр с директивой ServerName будет обслуживать каждый недопустимый запрос (указанный как ServerName).

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