skip to Main Content

Environment: Ubuntu with Apache.

Trying to setup automatic redirection from http to https.

I have tried:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile    <path to your crt file>
    SSLCertificateKeyFile   <path to your private key file>

    # ...
</VirtualHost>

and

    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

From mydomain.com — To —> (https://) mydomain.com

Any ideas?

3

Answers


  1. First create a virtual host based on this tutorial:
    Apache Web server – Setting Up Virtual Hosts

    Secondly you can create a Let’s encrypt cert and if you use certbot it will automatically configures your Apache and do the redirection:
    How To Secure Apache with Let’s Encrypt on Ubuntu 18.04

    Login or Signup to reply.
  2. I use this code

    <VirtualHost *:80>
        ServerName foo.com
        ServerAlias www.foo.com
    
        <IfModule mod_rewrite.c>
        RewriteEngine on
    
        RewriteRule ^ - [E=protossl]
        RewriteCond %{HTTPS} on
        RewriteRule ^ - [E=protossl:s]
    
        RewriteCond %{HTTPS} !=on
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
        </IfModule>
    
    </VirtualHost>
    
    Login or Signup to reply.
  3. Make sure you can access your website both through HTTP and HTTPS. Also make sure mod_rewrite is enabled, then you can add these lines to your .htaccess file.

    RewriteEngine On 
    RewriteCond %{HTTPS} off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search