Digamos que eu tenha a seguinte definição de Vhost no Apache2
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName dummy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/dummy
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.dummy.com
SSLCertificateFile /etc/letsencrypt/live/dummy.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dummy.com/privkey.pem
</VirtualHost>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:80>
ServerName dummy.com
ServerAlias www.dummy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/dummy
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
Redirect permanent / https://www.dummy.com
</VirtualHost>
</IfModule>
Se eu digitar
ele redireciona para
Mas se eu digitar
http://www.dummy.com ou apenas www.dummy.com
Ele redireciona para
que não é um URL válido.
o que na configuração do vhost está causando isso? Não consigo ver onde devo procurar para depurar e resolver o problema, pois o vhost não contém essa regra de reescrita
A
Redirect
diretiva deve ser:/
.Modifique o arquivo de configuração e reinicie o Apache2 ou apenas recarregue sua configuração. E, em seguida, limpe o cache do seu navegador ou use uma nova janela anônima para fazer o teste.
Além disso, você não precisa
RewriteEngine on
usar aRedirect
diretiva (não é regra de reescrita).Aqui está uma pergunta e resposta semelhante: Redirecionar pessoas após a configuração do SSL