Learn How to Use the .htaccess File

.htaccess files are hidden plain text files that are on the server to help control how your visitors interact with your website. The .htaccess file is also used to block specific traffic from being able to view your website. If you look for your .htaccess file you’ll see that there’s no filename. The extension is .htaccess which tells the server what type of file it is. In cPanel you can see if you have a current .htaccess file using file manager but you will need to make sure you have selected to view hidden files. If you are not familiar with using file manager please read our article. To view hidden files in the file manager, select the ‘file manager‘ icon in cPanel and make sure the box is checked next to ‘Show Hidden Files.’ Then click ‘OK‘ and you will be able to view hidden files.

Note: If you need help finding your .htaccess file, see our guide: Where is my .htaccess File?

What Can You Do With a .htaccess File?

You might have a private area of your website you wish to keep password protected. This password protection is actually set up in the .htaccess file. Most of the functions of the .htaccess file, you do not have to concern yourself with as they will be automatically written through cPanel. This is the case of password protecting directories. While you set it up in cPanel, it actually writes a directive to your .htaccess file.

Other functions of the .htaccess file include prohibiting hotlinks, rewriting URLs, setting default pages, creating redirects, reconfiguring account settings, forcing file downloads, canonicalizing files, and much more. It’s really important to realize how the .htaccess file can affect your entire account. Changing something in the .htaccess file can alter how your website functions so it’s really important BEFORE making changes to your .htaccess to backup your current .htaccess file.

Troubleshooting Errors Caused by the .htaccess File

If you are getting errors on your website, the .htaccess file can often be the culprit.

  • This is easily tested by renaming your current .htaccess file. Often, during troubleshooting I’ll simply rename the .htaccess to .htaccess.old and now I’ll reload the website. If the site loads I then know the issue resides in my configuration of the .htaccess file. If it does not fix the issue I was having, I’ll rename the .htaccess by removing the .old I added to the end. That way, it won’t affect my website after I resolve the issue.
  • If you are not seeing a change in your PHP settings, you may have to make your php.ini file affect all child folders as well. This is referred to as making the file “recursive“. In this case, see our full guide: How can I make my php.ini file recursive.

Go Unlimited with Exceptional Shared Hosting

Upgrade your Shared Hosting today and take your business to the next level! Get unlimited NVMe SSD storage, cPanel, professional email and over $400 in savings.

check markFree Domain check mark24/7 Human Support check mark100% Money-Back Guarantee

Shared Hosting

Carrie Smaha
Carrie Smaha Senior Manager Marketing Operations

Carrie enjoys working on demand generation and product marketing projects that tap into multi-touch campaign design, technical SEO, content marketing, software design, and business operations.

More Articles by Carrie

27 thoughts on “Learn How to Use the .htaccess File

  1. Hello, I have edited the .htaccess file, but it does not take the code, I have tried several, and I get an error.

    I need to compress, the codes with which I have tried are these, maybe they can help me

    AddOutputFilterByType DEFLATE text / html text / plain text / xml text / css text / javascript application / x-javascript



    AddOutputFilterByType DEFLATE text / xml

    AddOutputFilterByType DEFLATE text / css

    AddOutputFilterByType DEFLATE application / javascript

    AddOutputFilterByType DEFLATE application / x-javascript

    AddOutputFilterByType DEFLATE application / xml

    AddOutputFilterByType DEFLATE application / xhtml + xml

    AddOutputFilterByType DEFLATE application / rss + xml

    1. I’m not clear on what you are trying to accomplish to be able to assist you. What is the error you are receiving? Which code are you using?

  2. Hi there. I am a little confuse, so i need a little help to clean my folders.


    My site was hosted in public_html folder (site1.com). So, i created a new version of site in a paralell subdomain (home/site2.com).


    After upload site2.com files (new) to site1.com its showed some errors.


    To solve it, support team helped me to redirect the url site1.com to site2.com. Everything is working fine. But now i have all same content in site1.com and site2.com


    The problem is when i analysed in google pagespeed the result is an gzip problem because site1.com has a hard progress. 


    How can i eliminate site2.com completelly and return all content to site1.com without redirect and errors?


    Its possible? 


    It can be done from you guys, since i am an stupid amateurs?

    1. Hello!

      It is possible to do this, however, the consequences of moving the directories are unpredictable due to the nature of how some sites work. With that said, you should be able to follow our guide on moving a WordPress site from the sub-directory (public_html/site2.com) to the main directory (public_html). Note: the guide assumes a WordPress site and that the main (public_html) directory is empty. Rather than deleting site1.com (public_html) files, you can simply rename the public_html directory to “public_html.old” then create a new public_html directory. Then, copy the files into the new public_html directory from public_html.old/site2.com/ for them to load on site1.com because that site will always load public_html by default.

      Once you have followed those instructions, if any links need to be updated to correct images or other media content not loading, you can use the Velvet Blues Update URLs plugin. That plugin will make the process described in our guide on correcting images after moving a WordPress site, a lot simpler. If needed, after updating the URLs, everything should load fine on the site1.com site and you can then remove the public_html.old directory. I strongly recommend making a backup of your cPanel account before proceeding with any of these instructions.

      In regards to Support, I would recommend submitting a ticket with a verified and detailed request of what you would like done. Although File Management and website configuration are beyond the scope of Support, they may be able to process your request if it is explicit enough and the technician is capable of completing the task. The guides/links I am providing to you are the steps that would need to be taken to accomplish what you want. If Support is unable to complete the task for you, the guides are there to provide as much assistance as possible. Note: Before submitting that request, you should make and download a backup of your cPanel account. I hope this helps!

      Carlos E

  3. Hi…

    I have a website in php.Now it has redesigned and launched, and number of pages reduced.Its redesigned in php itself.There is some changes in the url(name of webpages).Is there any need to redirect the url(from old webpage name to new one) in .htaccess file since it is already a php website?

    1. One of the common reasons to redirect old pages would be in case any search engine had cached the old page names and those would now result in a 404 if clicked on.

  4. The following errors were found :

    • Could not open the Configuration File .htaccess


    How can I solve the error above observing during installation of BoldGrid for my domain.



    1. Thuzar, I would recommend that you make sure that your .htaccess file actually exists, and that your permissions are set properly on it.

  5. I’ve followed all the steps, and I’m not computer illiterate. But, I do NOT have the option to “check the box” to show hidden files. I accidentally switched to the “paper” theme on my cPanel, and now everything looks different.

  6. hello, i need your help… i have a web software on https://www.exampledomain.com, and i need all access inside the domain remais invisible on the navigation bar… no matter where i am on the site, its show only the domain name… is that possible with .htaccess?

    1. It would be very unusual for an .htaccess file to affect the appearance of nav bars. We are happy to help you troubleshoot further, but will need some additional information. Can you provide a link to the site for testing?

      Thank you,

  7. Hi  –

    I created and uploaded a .htaccess file using the recommendations of a SEO site. My first attempt.. Must have done something wrong, as my site crashed. I deleted the file, the site came back, but my nav bars, which are in #include files are gone.

    Hosting company won’t correct programming errors, and I’m at a loss where to look. Files look fine in Dreamweaver, but viewed locally and on the server, not so much.

    Appreciate any help.

  8. Hi,

    I can able to redirect URL using .htaccess file but i cant mask server IP address with domain name.

    https://mydomain.com  is pointed to https://xxx.xxx.xxx.x:8080/abc.html  (ip address) now i need to redrect /xyz/home.html to https://mydomain.com/xyz/home.html, i was able to redirect but i get redirected URL https://xxx.xxx.xxx.x:8080/xyz/home.html but i need to mask that ip address to https://mydomainname.com





    1. For security purposes, we do not allow masking. The closest you can get is to add a parked domain. Specifically creating a parked domain for the primary domain will have sort of a masking effect.

  9. I ever since the .htaaccess was changed, all the installed pluggins, mystile, wordpress are dissappeared. Is there a way to get them back without any re-installation?

    Please advise?

    1. Hello Teresa,

      Did you rename the .htaccess file? If so, rename it back as it should contain the information to make those things work.

      Kindest Regards,
      Scott M

  10. how does the .htaccess file and CPanel interact.

    it appears .htaccess updates CPanel?

    I do need an .htaccess for redirection of some files ; need to clarify “what goes where?”

    can you advise?


    1. Hello remya,

      The .htaccess file is hidden by default (hence the . at the beginning of the file name) which can be viewed by following the steps in this guide. Also you may not have a .htaccess file as it is not a default file pre-loaded to your account.

      Kindest Regards,
      TJ Edens

    1. Hello yusuf,

      Thank you for your question. If you deleted your .htaccess file, you can just create a new file and name it: .htaccess

      Then add your rules back as needed.

      If you have any further questions, feel free to post them below.

      Thank you,

  11. I am having question on .htaccess file.  i accidentally override with another file content then my website come with errror, then i found the file and removed all the content inside .htaccess file then it started working fine but my question is when i deleted the content if i also deleted important document, pls tell me if there is some content deleted.

    thank you

    1. Hello biruhtesfa,

      Thank you for your question. There is no way to tell if the content you deleted in the .htaccess file is important.

      This is because websites can be coded many ways.

      I recommend testing all aspects of your website (shopping carts, forms, scripts, etc.) to make sure it is still functioning after editing your .htaccess file.

      If you have any further questions, feel free to post them below.
      Thank you,


Was this article helpful? Join the conversation!