Tengo un sitio web ejecutándose en un servidor Apache. Cuando intento visitar un subdominio, soy redirigido al dominio principal.
Aquí está el archivo de configuración de Apache:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName azaanjobs.com
ServerAlias www.azaanjobs.com
DocumentRoot /var/www/azaanjobs/public_html
<Directory /var/www/azaanjobs/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
</VirtualHost>
</IfModule>
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName government-jobs.azaanjobs.com
ServerAlias www.government-jobs.azaanjobs.com.com
DocumentRoot /var/www/government-jobs/public_html/
<Directory /var/www/government-jobs/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
¿Cómo puedo arreglar esto?
Respuesta1
Apache intentará hacer coincidir una solicitud web con los dominios configurados en el orden en que aparecen en el sistema de archivos.ydentro de los archivos de configuración. Como regla general, es mejor manejar los subdominios antes que el sitio principal, que debe configurarse para que actúe como un "todo" para cualquier tráfico que no esté controlado.
Teniendo esto en cuenta, su archivo de configuración podría actualizarse para verse así:
<VirtualHost *:8080>
ServerAdmin [email protected]
ServerName government-jobs.azaanjobs.com
ServerAlias www.government-jobs.azaanjobs.com
DocumentRoot /var/www/government-jobs/public_html/
<Directory /var/www/government-jobs/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName azaanjobs.com
ServerAlias www.azaanjobs.com *.azaanjobs.com
DocumentRoot /var/www/azaanjobs/public_html
<Directory /var/www/azaanjobs/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/azaanjobs.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/azaanjobs.com/privkey.pem
</VirtualHost>
</IfModule>
Notas:
- el archivo de configuración actualizado reemplaza el
www.government-jobs.azaanjobs.com.com
valor incorrectoServerAlias
con una.com
referencia adecuada - Se agregó un
*.azaanjobs.com
alias al dominio principal para garantizar que cualquier tráfico "inesperado" se capture y se dirija a una ubicación probable. - No parece haber ninguna configuración en el sitio principal
*:80
, lo que podría ser un problema si algo delante del servidor no convierte el tráfico que no es SSL para usar SSL. - el subdominio todavía está escuchando en el puerto
8080
, por lo que será necesario actualizarlo*:80
antes de que los visitantes puedan ver el sitio sin especificar el puerto en su navegador.
Recuerde reiniciar Apache después de cambiar el archivo de configuración:
sudo service apache2 restart
Esto debería darte lo que necesitas.