I am using Cloudflare Flexible SSL on a website I programmed myself (no framework or CMS). Everything is working and now I want to use HTTPS on the whole site. I use PHP on Apache web server.
I am wondering how I should approach this and redirect all users to HTTPS.
Currently my .htaccess is set up like this:
# Force www.
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
I have seen this answer on stackoverflow, but it points to another answer which is not as simple and doesn't recommend rewrites.
This is the Apache recommendation:
<VirtualHost *:80>
ServerName www.example.com
Redirect "/" "https://www.example.com/"
</VirtualHost >
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost >
But frankly, I have no clue what this means.
How can I redirect users to HTTPS and www? Anything I should be aware of, when switching to HTTPS?
The best way is to use Cloudflare.
On the Cloudflare website:
Or you can use in your
.htaccess
:You could try putting this in your
.htaccess
file.This will check to see if the visitor is visiting over
http
. If so it will redirect to thehttps
version of the same page.Something like this might work:
Well I Think there is an easy way to do
just open cloud flare dashbaoard
go to crypto section
in SSL section select full scroll down and you will see this section
Always Use HTTPS Redirect all requests with scheme “HTTP” to “HTTPS”. This applies to all HTTP requests to the zone.
turn it to on
all done
Source
Looks like all of the previous answers are out-of-date.
Here's what worked for me:
I came up with this by going to the support article How do I fix the infinite redirect loop error after enabling Flexible SSL with WordPress?. Then I went to the the linked CloudFlare Flexible SSL. I looked at the source code and I found this:
Then I translated that into an
.htaccess
rule.