Knowledge Base

How To Force HTTPS On All Pages In .htaccess File

Forcing SSL (Secure Sockets Layer) with HTTPS (Hypertext Transfer Protocol Secure) redirect means that all traffic to a website is encrypted, and the user's browser is automatically redirected from HTTP to HTTPS. This means that all data transmitted between the user's browser and the website's server is encrypted and secure.

Any sensitive information, such as login credentials or payment details, is encrypted and protected from prying eyes. Additionally, forcing SSL can help improve your website's search engine rankings because Google and other search engines prefer websites that use HTTPS over HTTP (Hypertext Transfer Protocol). Finally, implementing SSL can help build trust with your visitors because it shows that you take their privacy and security seriously.

In this tutorial, we will learn how to force HTTPS in .htaccess file and apply it in various scenarios. It's important to take a backup of your .htaccess file first before making any changes and to thoroughly test the website after implementing them.

How to Force HTTPS in .htaccess File on All Pages

You can force all of your pages to use HTTPS redirects. To do this, you will need to modify your .htaccess rewrite rules.

Add these lines to the beginning of the .htaccess file using the Code Editor in the File Manager.

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

How to Force HTTPS in .htaccess File on Specific Pages

To set up SSL protection on specific pages, you must edit the .htaccess file particular to that domain. For more information on accessing the .htaccess, please see this article .htaccess Tutorial

How to Edit .htaccess File

Access the .htaccess file inside the file manager:

  1. Log in to your Bluehost Account Manager.
  2. Click on the Hosting tab from the navigation tab to the left.
    Bluehost Account Manager - Hosting Tab
  3. Choose the website name you want to manage under the Websites section. 
    • If you have multiple websites on your account, click the SETTINGS button on the website you want to manage.
    • If you only have a single website on your account, you will be directly rerouted to the Website Overview page.
  4. Click the FILE MANAGER button under the Quick Links section to launch the cPanel File Manager in a new tab.
    Bluehost Account Manager - Hosting Tab - File Manager
  5. Look for the Settings button towards the upper right corner of your screen.
  6. On the Preferences pop-up, click the Show Hidden Files (dotfiles) checkbox, then click the Save button. 
  7. Scroll to locate the .htaccess file from the list.

Then proceed to the steps below, explaining how to edit the file to add protection.

  1. Right-click on the .htaccess file and select the Edit option.
  2. A pop-up message will appear, then click the Edit button.
  3. At the top of the file, insert the following code:
    RewriteEngine On 
    RewriteCond %{HTTPS} off 
    RewriteCond %{REQUEST_URI} /[SSL Requested page]/ 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
  4. Click the Save Changes button towards the top right corner of your screen.
  5. Check your website to ensure it's functioning as expected.

If that doesn't work, you can use this default cPanel code:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

Note: Make sure to replace example.com with your domain name. Again, remember to Save Changes when finished.

How to Force HTTPS on a Specific Domain

If you have two domains that access the same website and you only want the first one to be redirected to the HTTPS version, use this code:

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

How to Force HTTPS on a Specific Folder

The .htaccess file can also be used to force HTTPS on particular or specific folders. To do this, the file should be placed in the folder that will have the HTTPS connection. Use this code:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(folder1|folder2|folder3) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

How to Troubleshoot SSL errors in .htaccess

SSL errors in the .htaccess file can lead to website security and functionality issues. Here are a few tips to troubleshoot SSL errors in .htaccess:

  • Check the SSL certificate. Ensure that the SSL certificate is valid and issued by a trusted certificate authority.
  • Verify the SSL URLs. Make sure the URLs in the .htaccess file are correct and use the HTTPS protocol.
  • Check the .htaccess file syntax: Ensure the .htaccess file syntax is correct and error-free. Even a minor syntax error can cause SSL errors.
  • Make sure to replace. If you recently switched to HTTPS, update the .htaccess file to reflect the change. You can use a redirect to ensure that all traffic is redirected to the HTTPS version of your site.
  • Disable plugins. If you have recently installed a new plugin, try disabling it to see if it resolves the SSL error. Sometimes, plugins can conflict with SSL certificates and cause errors.

If you've tried all the tips mentioned above and are still experiencing SSL errors, it's best to consider using alternative methods to force HTTPS. You can try configuring your server settings directly instead of using the .htaccess file or SSL plugins. Additionally, check out online .htaccess generators for SSL redirection and SSL checker tools to ensure proper implementation.


It's crucial to ensure your website is secure and protect sensitive information transferred between the server and the user's browser. The best way to achieve this is by forcing SSL in the .htaccess file. This can be done by redirecting all HTTP requests to HTTPS, which encrypts and secures all data transmitted. 

To force HTTPS on all pages, modify your .htaccess rewrite rules. If you need to force HTTPS on specific pages, you must edit the .htaccess file specific to that domain. 

To troubleshoot SSL errors in .htaccess, you can do a few things. First, check the SSL certificate and verify the SSL URLs. Second, ensure that the .htaccess file syntax is correct. If necessary, consider using alternative methods to force HTTPS.

If you need further assistance, feel free to contact us via Chat or Phone:

  • Chat Support - While on our website, you should see a CHAT bubble in the bottom right-hand corner of the page. Click anywhere on the bubble to begin a chat session.
  • Phone Support -
    • US: 888-401-4678
    • International: +1 801-765-9400

You may also refer to our Knowledge Base articles to help answer common questions and guide you through various setup, configuration, and troubleshooting steps.

Did you find this article helpful?

* Your feedback is too short