Перенаправьте все субдомены к основному домену внутри vhost

Я просто хочу перенаправить все субдомены, которые не уже не упоминаются в vhost's ServerName перенаправить к пустому sub домену. Я пытался добавить это к своему httpd.conf после всех других виртуальных хостов этого домена.

<VirtualHost *:80>
    ServerName *.example.com
    RedirectPermanent / http://example.com/
</VirtualHost>

Раздел для пустого sub домена (загрузился ранее), чтения как это.

<VirtualHost *:80>
    DocumentRoot /var/www/example/htdocs
    ServerName example.com
    <Directory /var/www/example/htdocs>
        Options FollowSymLinks
        AllowOverride All
        Order Allow,Deny
        Allow from all
    </Directory>
</VirtualHost>

После перезапуска httpd сервиса я вижу 403 Запрещенных при указании на мой браузер на abc.example.com. Что я делаю неправильно? Я надеялся, что нет никакой потребности в regex, базирующемся, соответствуя, как описано в других ответах для этой простой задачи.

0
задан 23 May 2017 в 15:41
2 ответа

Просто добавьте блок под основным блоком в файл конфигурации vhost . Просто укажите ServerAlias ​​, используя подстановочный знак * для поддоменов. Наконец, укажите адрес перенаправления с помощью RedirectPermanent .

Listen 80
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ServerName example.com

        <Directory /var/www/html/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerAlias *.example.com
    RedirectPermanent / http://example.com/
</VirtualHost>
4
ответ дан 4 December 2019 в 11:26
<VirtualHost *:80>
    DocumentRoot "/var/www/example"
    ServerName *.example.org
    RedirectPermanent / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/example/htdocs"
    ServerName example.org
    <Directory /var/www/example/htdocs>
         Options FollowSymLinks
         AllowOverride All
         Order Allow,Deny
         Allow from all
    </Directory>
</VirtualHost>

Для ошибки 403, возможно, вы не установили документ по умолчанию, поэтому он пытается получить доступ к содержимому папки. В качестве документа по умолчанию вы можете использовать, например,

DirectoryIndex index.html Index.htm index.php
1
ответ дан 4 December 2019 в 11:26

Теги

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