Eu não tenho uma idéia exata do porque a configuração acima funciona no Vagrant, mas não no Apache nativo. Minha experiência mostra que, quando a configuração do Apache não é rigorosa o suficiente, às vezes funciona e às vezes não funciona. Especialmente quando você migrou de uma para outra versão do Apache. Também li várias vezes que é preferível evitar o uso de regras de reconfiguração, se for possível.
Então eu prefiro configurar meu host virtual com arquivo de configuração separado, que deve ser assim:
ServerName myurl.com # Remove this line if there is another ServerName directive at the global level, or change it to 'ServerName localhost' if you want.
<VirtualHost *:80>
ServerName myurl.com
ServerAlias www.myurl.com
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/myurl.com.error.log
CustomLog ${APACHE_LOG_DIR}/myurl.com.access.log combined
# Redirect Requests to HTTPS
Redirect permanent "/" "https://myurl.com/"
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName myurl.com
ServerAlias www.myurl.com
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/myurl.com.error.log
CustomLog ${APACHE_LOG_DIR}/myurl.com.access.log combined
DocumentRoot /var/www/myurl.com/public_html
<Directory /var/www/myurl.com/public_html>
Options None FollowSymLinks
AllowOverride None
# Use 'AllowOverride All' to enable all .htaccess overrides
DirectoryIndex index.html index.php
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /path/to/your/cert.file
SSLCertificateKeyFile /path/to/your/privkey.file
SSLCertificateChainFile /path/to/your/chain.file
</VirtualHost>
</IfModule>
Crie um novo arquivo de configuração: /etc/apache2/sites-available/myurl.com.conf
. Onde você deve colar e modificar as linhas acima.
Desative o arquivo de configuração atual. Provavelmente você deve usar a2dissite
. Em seguida, ative o novo arquivo de configuração: sudo a2ensite myurl.com.conf
. E reinicie o Apache. Eu acho que deveria funcionar agora.
Além disso, nas configurações acima, o estande http://myurl.com
e http://www.myurl.com
redirecionará todas as solicitações para https://myurl.com
. No entanto, o endereço https://www.myurl.com
estará acessível quando for solicitado. Se você quiser redirecionamentos como estes:
Você deve remover a diretiva ServerAlias
da definição <VirtualHost *:80>
e criar outra:
<VirtualHost *:80>
ServerName myurl.com
...
Redirect permanent "/" "https://myurl.com/"
</VirtualHost>
<VirtualHost *:80>
ServerName www.myurl.com
...
Redirect permanent "/" "https://www.myurl.com/"
</VirtualHost>
...