Apache htaccess and mod_rewrite how to redirect and force all URLs and visitors to the SSL / HTTPS version

It is really simple using .htaccess with mod_rewrite.

Here is all you need:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]

Another more graceful way is to use the %{SERVER_NAME} variable to make it dynamic.  Just be careful that the server name will always match what you expect. (eg. if you are doing load balancing or clustering what if the server name may be something other than the public facing URL).

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]

 

The above just detects that the user has connected with non-SSL by connecting to port 80.  When that condition is detected it just rewrites the url to the same thing only with https:// to "site.com" (make sure you change site.com to your domain)


Tags:

apache, htaccess, mod_rewrite, redirect, urls, ssl, https, versionit, rewritecond, server_port, rewriterule, graceful, server_name, variable, dynamic, server, eg, balancing, clustering, url, detects, user, connecting, detected, rewrites, quot, domain,

Latest Articles

  • Centos 7 how to save iptables rules like Centos 6
  • nfs tuning maximum amount of connections
  • qemu-kvm error "Could not initialize SDL(No available video device) - exiting"
  • Centos 7 tftpd will not work with selinux enabled
  • Debian Ubuntu Mint Howto Create Bridge (br0)
  • How To Control Interface that dhcpd server listens to on Debian based Linux like Mint and Ubuntu
  • LUKS unable to type password to unlock during boot on Debian, Ubuntu and Mint
  • Debian Ubuntu and Linux Mint Broken Kernel After Date - New Extra Module Naming Convention
  • Wordpress overwrites and wipes out custom htaccess rules and changes soluton
  • Apache htaccess and mod_rewrite how to redirect and force all URLs and visitors to the SSL / HTTPS version
  • python 3 pip cannot install mysql module
  • QEMU-KVM won't boot Windows 2016 or 2019 server on an Intel Core i3
  • Virtualbox vbox not starting
  • Bind / named not responding to queries solution
  • Linux Mint How To Set Desktop Background Image From Bash Prompt CLI
  • ImageMagick Convert PDF Not Authorized
  • ImageMagick Converted PDF to JPEG some files have a black background solution
  • Linux Mint Mate Customize the Lock screen messages and hide username and real name
  • Ubuntu/Gnome/Mint/Centos How To Take a partial screenshot
  • ssh how to verify your host key / avoid MIM attacks