Here is what I have got:

  • CentOS 5.4 (32-bit)
  • installed Apache httpd (Server version: Apache/2.2.11 (Unix))
  • mod_rewrite already presents

Question: how to redirect simple http://site.com to https://site.com not using VirtualHost defines?

PS: tried to find in later answers on SF, but doesn't find nice solution.


2 Answers 2

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  • 2
    RewriteRule ^(.*) https://%{HTTP_HOST}$1 makes more sense to me.
    – cregox
    May 3, 2011 at 15:40
  • Won't that infinite loop on you? May 4, 2011 at 4:14
  • Nope, just tested it. It's even how it's advised under the docs - look at the end of it.
    – cregox
    May 4, 2011 at 19:14
  • 1
    I get an infinite loop using Apache 2.4.10, deploying on Heroku, when I insert those commands into my .htaccess. And the variant suggested by Cawas oddly mangles my URL. I've tried a different set of commands: RewriteCond %{HTTP:X-Forwarded-Proto} !https and RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI} -- which works on Chrome and Firefox, but fails on Safari and Opera. Interestingly, if I take the three lines above and omit RewriteEngine On I no longer get the infinite loop, but it still fails in Safari and Opera (and works in Chrome and Firefox). Aug 4, 2014 at 20:31

You can use mod_alias and Redirect based on directory. The linked document identifies additional details.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .