System: Ubuntu 14.04 , Apache 2.4.7
I want all requests to http://domain.com and https://domain.com be redirected to https://domain.com. I also want to redirect requests to the "www" subdomain to the main domain.com host, whilst a few other subdomains (tools.domain.com and phpmyadmin.domain.com) will stay accessible over http for the moment.
All this should be done directly via the virtualhost config file for domain.com, (/etc/apache2/sites-available/domain.com.conf full content here below), then restarted the apache2 service several times.
Redirection from http://domain.com to https://domain.com works. Redirection from http://www.domain.com to https://domain.com does not work. Redirection from https://www.domain.com to https://domain.com does not work.
Here is the virtualhost file content:
<VirtualHost *:*> ServerName www.domain.com Redirect permanent / https://domain.com/ </VirtualHost> <VirtualHost _default_:80> ServerName domain.com Redirect permanent / https://domain.com/ LogLevel error </VirtualHost> <VirtualHost *:80> ServerName tools.domain.com DocumentRoot /var/www/domain.com/subdomains/tools/public </VirtualHost> <VirtualHost *:80> ServerName phpmyadmin.domain.com DocumentRoot /usr/share/phpmyadmin </VirtualHost> <VirtualHost _default_:443> ServerName domain.com DocumentRoot /var/www/domain.com/public <Directory /var/www/domain.com/public> Require all granted </Directory> # SSL CERTIFICATES GnuTLSEnable on GnuTLSExportCertificates on GnuTLSCacheTimeout 500 GnuTLSCertificateFile /etc/ssl/certs/domain.com-certificate-125023.crt GnuTLSKeyFile /etc/ssl/private/domain.com.key GnuTLSPriorities NORMAL </VirtualHost> Update: only https://www.domain.com does not work
Stupid me: the problem was beyond the server! I had not configured any 'www' subdomain in my DNS zone. I corrected that and now I'm almost there.
apache2ctl -Sto be quite useful in understanding what Apache "understands" from the virtualhost file.