Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a virtual host setup in apache, that works for SSL only. It is setup as so:

<VirtualHost 8.8.8.8:443>
<IfModule mod_ssl.c>
        SSLCertificateFile /home/me/server.crt
        SSLCertificateKeyFile /home/me/server.pem
        SSLEngine on
        ServerName example.com
        SSLOptions StrictRequire
        SSLProtocol all -SSLv2
</IfModule>

DocumentRoot /me
ServerName example.com
<Location />
AllowOverride none
</Location>
RemoveHandler .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
RemoveType .cgi .pl .py .php4 .pcgi4 .php3 .phtml .pcgi .php5 .pcgi5
</VirtualHost>

What I want to do, is have it so when someone goes to my site, they are automatically redirected to the https version.

Outside of the VirtualHost, I tried listening on port 80, and redirecting to the secure version, like so

Listen 8.8.8.8:80 NameVirtualHost 8.8.8.8:443

Redirect permanent / https://example.com/

However, this apparantly caused an infinite loop.

What is the correct way to redirect to a https version of a site when the https site is a VirtualHost?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

This is what I did:

Specify a port 80 virtual host and such as though you would be running a normal non-encrypted site. In that virtual host's root directory, put nothing but a single .htaccess file containing this:

Redirect 301 / https://your-ssl-site.tld

Seems to be work good enough for me.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.