"RT @richardosman: I bet people who narrate audiobooks always have their voices recognised the second they start speaking at 1.25 speed."

@ashleyford 5 days ago

"All the high value adverts on display tonight! #itv #xfactorfinal #xfactor"

@ashleyford 1 week ago

Designer and web developer, Co-founder and Technical Director at Previously I worked at Spotify, MySpace and InMobi. Contact me - ashley[at]

Useful .htaccess techniques


I wrote a post mid last year about protecting your site images from being hotlinked as I found a site that had word for word scrapped one of my blog posts, you can see the post here, and I really wanted to go back to this and run over a few more things the .htaccess file is useful for. I mainly use the .htaccess file to rewrite URIs for example would be accessed by visiting So the URI is being re-routed to my contact.php page.

Using Mod_rewrite for friendly URLs

You need to make sure if you want to rewrite URI’s that you have the mod_rewrite PHP module installed with your host. Most hosts will have this with the latest stable versions of PHP.

 RewriteEngine On

 RewriteRule ^user/([a-z0-9]+)/$ /user.php?u=$1 [NC,L]
 RewriteRule ^analytics/$ /pages/analytics.php [NC,L]
 RewriteRule ^settings/$ /pages/settings.php [NC,L]

Redirect a domain

If you’ve just moved your site to a new domain and you want to transfer any visitors that visit your old site straight through to your new site just add this to your .htaccess file on your old domain.

RewriteEngine On
RewriteRule ^(.*)$$1 [R=301,L]

Restrict certain file type execution

If you have a server that only has php files on, you can lock it down so other file types can’t be executed

Options -ExecCGI
AddHandler cgi-script .js .cgi .asp .jsp. htm .exe .sh

Set custom error pages

Probably the most common use for the .htaccess file is to setup custom error pages. this means that if you’re site throws a 404 not found error the user will see the page at

ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Remove the www in your url

This snippet of rewrite code will remove the www from your site domain url. For example wordpress automatically does this if you visit you’ll see that the url changes to

RewriteEngine On
RewriteCond %{HTTP_HOST} ^$ [NC]
RewriteRule ^(.*)$$1 [L,R=301]

Things to note when editing the .htaccess file

Designer and web developer, Co-founder and Technical Director at Previously I worked at Spotify, MySpace and InMobi. Contact me - ashley[at]

Comments 10
  • Sag-e-Attar Junaid Atari
    Posted on

    Sag-e-Attar Junaid Atari Sag-e-Attar Junaid Atari

    Reply Author

  • Bob
    Posted on

    Bob Bob

    Reply Author

    Hi, when I upload an .htaccess file, I cannot see it in my root folder. My site uses cpanel. What could be the problem?

  • mitran
    Posted on

    mitran mitran

    Reply Author

    where to put these code??? Do we have any common htaccess file or we have to create it…
    i didn`t used htaccess… now i need to used it…

    plz help me…

  • mitran
    Posted on

    mitran mitran

    Reply Author

    i want to give user name in the url like twitter and facebook did
    like this only i want to create url for user who login…
    plz… i require this…
    thanks in advance..

  • ginix
    Posted on

    ginix ginix

    Reply Author

    There’s another useful .htaccess thing and is that you can restrict the access to your website by IP.This is very useful if you need to block certain IP that’s bothering you but it can be very useful if you designed a website which can only be accesed from a certain country.
    To use it,for example, to block a certain IP you would write:
    #Block IP
    order allow,deny
    deny from
    allow from all

    To block a certain country or to allow only one country the easiest way is to go to this page the right upper corner you would select the country (or the countries) and choose .htaccess deny and you would have the code for that.
    You can block too a bot that is bugging you by blocking the agent or the referer.Two examples:
    To block bot identified by larbin
    #Block Agent
    rewriteEngine on
    rewriteCond %{HTTP_USER_AGENT} ^larbin

    To block a bot that comes from a website named malicious web:
    #Block Referer
    rewriteEngine on
    rewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?*$
    rewriteRule .* – [F]
    rewriteRule .* – [F]

  • Textile Exporter
    Posted on

    Textile Exporter Textile Exporter

    Reply Author

    I saw your article its pretty good and informative and I am also using this technique to make .htaccess file for my site.

  • ryan
    Posted on

    ryan ryan

    Reply Author

    Mike you can and paste this code to your htaccess file..

    #RewriteRule ^(.*)$ index.php?articles=$1
    #RewriteRule ^(.*)/$ index.php?articles=$1

    feel free to edit the code…..


  • Mike
    Posted on

    Mike Mike

    Reply Author

    I’m having trouble creating the friendly URL’s… I’m able to go to say, (about.php), but it’s not pulling my CSS or any styling for that matter… thoughts?


  • enatom
    Posted on

    enatom enatom

    Reply Author

    bookmarked this.

  • Derleth
    Posted on

    Derleth Derleth

    Reply Author

    oye chato eso estuvo muy bueno principalmente lo ultimo, es muy util :)
    buen post