googledjango

Force HTTPS redirection with Apache

TIP: To quickly get started with HTTPS and SSL, follow these instructions to auto-configure a Let’s Encrypt SSL certificate.

Follow these steps:

  • Add the following lines in the default Apache virtual host configuration file at /opt/bitnami/apache/conf/bitnami/bitnami.conf, inside the default VirtualHost directive, so that it looks like this:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
        ...
      </VirtualHost>
    

    To redirect all HTTP requests to a particular domain, specify the domain name as a static value in the rewrite rule instead of using the SERVER_NAME variable. Here’s an example of redirecting all HTTP requests to https://example.com:

      <VirtualHost _default_:80>
        DocumentRoot "/opt/bitnami/apache/htdocs"
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
        RewriteRule ^/(.*) https://example.com/$1 [R,L]
        ...
      </VirtualHost>
    
  • Add the same lines in the file at /opt/bitnami/apache/conf/bitnami/bitnami-ssl.conf.

  • Add the same lines in any file ending with the prefix -vhost.conf in the /opt/bitnami/apache/conf/vhosts/ directory.

  • After modifying the Apache configuration files, open port 443 in the server firewall. Refer to the FAQ for more information.

  • Restart Apache to apply the changes.

Last modification October 13, 2023