How to force redirect http to https on a apache reverse proxy server?

20,574

Recommended and also safer way is using VirtualHost:

<VirtualHost *:80>
   ServerName www.example.com
   Redirect permanent / https://www.example.com/
</VirtualHost>

or

<VirtualHost *:80>
   ServerName www.example.com
   Redirect permanent /login https://www.example.com/login
</VirtualHost>

The other way is using mod_rewrite:

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in httpd.conf
# or .htaccess context

As I said, Apache recommends using VirtualHost config.

Examples taken from:

https://wiki.apache.org/httpd/RedirectSSL

https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

Share:
20,574

Related videos on Youtube

林少峰
Author by

林少峰

Updated on August 05, 2020

Comments

  • 林少峰
    林少峰 almost 4 years

    I have an apache reverse proxy server with http and https services. I want to redirect http to https forcible. What should i configure the config file?

  • 林少峰
    林少峰 about 7 years
    Thank you, it works, i use ProxyPass original but it didn't work.