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 -S
to be quite useful in understanding what Apache "understands" from the virtualhost file.