Я просто хочу перенаправить все субдомены, которые не уже не упоминаются в 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, базирующемся, соответствуя, как описано в других ответах для этой простой задачи.
Просто добавьте блок под основным блоком в файл конфигурации 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>
<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