Reputation: 449
I am trying to force my website to redirect http traffic to the https site and I have verified that the htaccess file is getting accessed but the redirect is not occurring. I have a valid cert for the site and the https version works fine but whether I type in www.mywebsite.com or http://www.mywebsite.com or website.com I still get taken to the HTTP version. Any suggestions?
.htaccess file
# Use PHP56
AddHandler application/x-httpd-php56 .php
# Always Redirect to HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteCond %{HTTP_HOST} ^(www\.)?mywebsite\.com$ [NC]
RewriteRule ^$ https://mywebsite.com%{REQUEST_URI} [R=301,L]
Upvotes: 7
Views: 17628
Reputation: 1569
I have solved this problem by adding this code snippet, make sure it is at the beginning of the file .htaccess:
# Force HTTPS on all pages
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Upvotes: 3
Reputation: 814
I use this on my website and it redirects to HTTPS and not HTTP. There is also a great explanation here: Best Practice: 301 Redirect HTTP to HTTPS (Standard Domain)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Upvotes: 7