Redirigir todos los subdominios al dominio principal dentro de vhost

Redirigir todos los subdominios al dominio principal dentro de vhost

Simplemente quiero redirigir todos los subdominios que aún no están mencionados en un vhost ServerNamepara redirigir al subdominio vacío. Intenté agregar esto a mi httpd.conf después de todos los demás hosts virtuales de este dominio.

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

La sección para el subdominio vacío (cargado anteriormente) dice así.

<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>

Después de reiniciar el servicio httpd, veo 403 Prohibido cuando apunto mi navegador a abc.example.com. ¿Qué estoy haciendo mal? Esperaba que no fuera necesario realizar coincidencias basadas en expresiones regulares como se describeen otras respuestaspara esta sencilla tarea.

Respuesta1

Simplemente agregue un bloque debajo del bloque principal en suservidor virtualarchivo de configuración. Simplemente especifique ServerAliasusando el comodín *para los subdominios. Finalmente, especifique la dirección de redireccionamiento usando 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>

Respuesta2

<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>

Para el error 403, tal vez no configuró el documento predeterminado, por lo que intenta acceder al contenido de la carpeta. Para el documento predeterminado puede utilizar, por ejemplo

DirectoryIndex index.html Index.htm index.php

información relacionada