Knowledge base article

Hide .html extension using .htaccess

This article will teach you how to hide the .html extension from your domain URL using a .htaccess rewrite condition

Do you want to hide the .html file extension from your URL for cosmetic purposes? This can be implemented by adding a rewrite entry in your .htaccess file.

For example, if a webpage loads via URL https://yourdomain.com/page.html, after implementing the redirect, the webpage will be served via https://yourdomain.com/page.

To complete this guide, please ensure you have SSH Access to your hosting server. Serversaurus hosting relies on key based authentication to login via SSH/SFTP. To set up SSH access you can generate a SSH key pair and configure it in cPanel before proceeding with this guide.

Let's get started!

  1. Open your terminal window and SSH to your hosting server:
    ssh username@yourserver.serversaurus.com.au
  2. Change into your public_html directory (or alternative document root location):
    cd public_html
  3. Edit the .htaccess file using vi:
    vi .htaccess
  4. Paste the following text to the beginning of your .htaccess file by typing i and then paste the text:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.html -f
    RewriteRule ^(.+)$ $1.html [L,QSA]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*.html HTTP/
    RewriteRule ^(.*).html$ /$1 [R=301,L]

    Once completed press esc then enter :wq to save your files changes.

Well done! Your URLs will now be rewritten without the HTML file extension.

Last updated November 30, 2023

Can't find what you're looking for?

Submit a question

  • Drop files here or
    Max. file size: 2 MB, Max. files: 3.
    • This field is for validation purposes and should be left unchanged.