
Simplemente quiero redirigir todos los subdominios que aún no están mencionados en un vhost ServerName
para 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 ServerAlias
usando 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