301 Redirects to HTTPS (with or without “www”)

I’ve given examples for both “www” and also “without www”. Add this code (use either version of either method) above the #BEGIN WordPress line in your htaccess.

Method #1

This one uses less code but has more redirects when you use page tools. It works well but perhaps less performant than the 2nd.

WITHOUT www (all visits go to “https://domain.com”):

#301 https redirects
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

WITH www (all visits go to “https://www.domain.com”):

#301 https redirects
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Method #2

An alternate method, thanks to Nazar Hotsa who’s researched every method and shared this with me. Awesome community guy with tons of enterprise webhosting experience.

WITHOUT www (all visits go to “https://domain.com”):

# BEGIN Redirects
RewriteEngine On
# 301 redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# 301 redirect to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# END Redirects

WITH www (all visits go to “https://www.domain.com”):

# BEGIN Redirects
RewriteEngine On
# 301 redirect to www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 301 redirect to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# END Redirects

Other ways to redirect?

Some people complained my examples used too many redirects. In that case, you’re welcome to research on your own and try other methods of redirection.

Read below and see which one you like best (beware, they all have their implications):

Looking for ultra-fast WordPress hosting?

Learn More About JVPS

Reader Interactions

Leave a Reply

Your email address will not be published. Required fields are marked *