How to force http- NOT https using htaccess

I have ONE directory for my entire domain that I want to force https, which is “/docs”. In the /docs folder, I have the following htaccess file:

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

This is forcing https to everything in the /docs directory, which is what I want it to do. The problem I am having is trying to force REMOVE https back to http for all other areas of my site. In the root folder of the site (which is running wordpress), I have the following htaccess file:

Read More
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/docs/?.*$
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

Unfortunately, this is not working. I can still access other areas of my site over https.

What do I need to change to get this to work correctly?

Related posts

Leave a Reply

4 comments

  1. Since the accepted answer doesn’t actually answer the question, I figured I’d post my solution to this. Add this to your .htaccess file to force HTTP instead of HTTPS:

    # BEGIN Force HTTP
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 443
    RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L]
    # END Force HTTP
    
  2. Why do you need to revert back to http? If you have the proper SSL certificates you might as well keep your access secure. Unless you are concerned about the load on your system.

    I know this is not answering the question, but I want to emphasize that the question is asking on how to do a bad practice, which shouldn’t be done in the first place.