5 useful url rewriting examples using .htaccess

If you are looking for the examples of URL rewriting then this post might be useful for you. In this post, I’ve given five useful examples of URL rewriting using .htacess. If you don’t know something about url rewriting then please check my older post about url rewriting using .htaccess.

Now let’s look at the examples

1)Rewriting product.php?id=12 to product-12.html

It is a simple redirection in which .php extension is hidden from the browser’s address bar and dynamic url (containing “?” character) is converted into a static URL.

RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1

2) Rewriting product.php?id=12 to product/ipod-nano/12.html

SEO expert always suggest to display the main keyword in the URL. In the following URL rewriting technique you can display the name of the product in URL.

RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2

3) Redirecting non www URL to www URL

If you type yahoo.com in browser it will be redirected to www.yahoo.com. If you want to do same with your website then put the following code to .htaccess file. What is benefit of this kind of redirection?? Please check the post about SEO friendly redirect (301) redirect in php and .htaccess.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]

4) Rewriting yoursite.com/user.php?username=xyz to yoursite.com/xyz

Have you checked zorpia.com.If you type http://zorpia.com/roshanbh233 in browser you can see my profile over there. If you want to do the same kind of redirection i.e http://yoursite.com/xyz to http://yoursite.com/user.php?username=xyz then you can add the following code to the .htaccess file.

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

5) Redirecting the domain to a new subfolder of inside public_html.

Suppose the you’ve redeveloped your site and all the new development reside inside the “new” folder of inside root folder.Then the new development of the website can be accessed like “test.com/new”. Now moving these files to the root folder can be a hectic process so you can create the following code inside the .htaccess file and place it under the root folder of the website. In result, www.test.com point out to the files inside “new” folder.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1

126 thoughts on “5 useful url rewriting examples using .htaccess

  1. Hot Topic Thanks !

  2. Sujal Shakya

    Roshan Bro! Nice tut… I have one question regarding this htaccess…. How can we do redirect for sitename/username .

    I mean if i want to pass username sujal in website http://website.com ie http://website.com/sujal equivalent to http://website.com/main.php?username=sujal ..

    what should be done for this?

    Thanks in advance..

  3. Hi,

    Can u provide me the url rewriting code for my site (jspservlettutorial.info).

    Thanks.

  4. you are great man……..!!

  5. But how can i change my /public_html/folder to folder.mysite.com

    means i want to change my root folder to my subdomain with .htaccess

  6. Nice tips.
    All work for me.
    Dont forget to load module rewrite at first.
    Because itโ€™s been disable by default if you use xampp.

    Thanks a lot!

  7. george

    Rewriting yoursite.com/user.php?username=xyz to yoursite.com/xyz

    Have you checked zorpia.com.If you type http://zorpia.com/roshanbh233 in browser you can see my profile over there. If you want to do the same kind of redirection i.e http://yoursite.com/xyz to http://yoursite.com/user.php?username=xyz then you can add the following code to the .htaccess file.

    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1

    It is working on localhost But when itried to fix it on web it not working.
    i put a test folder inside WWW root folder inside my test folder i placed neww .htaccess for user friendly URl ouside that there is error redirecting .htaccess i have early written when i test on testing folder file it redirect to error page .

    please tel me a solutions to solve this problem..

  8. Hi i need a little bit of help. my requirement is to fix the page name with extension and variable name and the www because i want to make my URL more short
    like below url
    OLD URL:
    http://www.globalguideline.com/index.php?JScript=first_JavaScript

    NEW URL (Required):
    http://globalguideline.com/first_JavaScript

    Please guide me,
    Regards,
    Hussain

  9. Rajat

    I used mod-rewrite in htaccess to generate clean URL with base file test.php. (I am new to php)
    Initial URL:
    http://www.example.com/test.php?id=1176
    New URL:
    http://www.example.com/test/176
    Queries are appropriately passed and printed. No problem here.

    However, the same page can get displayed by the following URL also:
    http://www.example.com/strange/1176
    I have a file called strange.php in the root. test.php and .htaccess are in the same root folder.
    Though the rule is only to change test.php to test/
    it looks like any ..php file in the root directory can substitute for test and print that URL with content from 1176, as shown above. Any help?

  10. RewriteEngine on
    RewriteRule digital-camera/([^/]+)/ brand.php?brandName=$1
    RewriteRule digital-cameras/([^/]+)/([^/]+) product_list.php?bName=$1&catName=$2

    First rule is working fine but second rule is not working, can you please tell where is the problem?

    this is my website http://www.cameraforall.com
    you see it’s working when you click on canon, nikon or any brand name but it’s not working when cliking on Compact Digital Cameras/Digital SLR Cameras

    Need help, please give me advise…

  11. Hi
    I have just found your site from google.com.I have problem .Problem is i have 12 links in page i want to click a particular link then in broswser it show domainname/linkname.But i want to when i click any link it should be show in browser with link name and each case run a file detail.php.So it is possible through
    .htacess file.Then send me code.
    Example
    AGRICULTURE SCIENCE ARCHAEOLOGY ARCHITECTURE suppose these are links when i click this link
    then result should be domain.com/link-name and each click detail.php file should be run.
    Thanks in advance
    Ranjit Kumar
    My english is not good.

  12. Raj

    Hi ,

    I am new to php and I am trying to follow you post but messed up my .htaccess file.And actually wants to redirect following URLs
    http://www.mysite.com/content/list?type=studio To http://www.mysite.com/list/type/studio

    and another URL with two query strings is :
    http://www.myxxxreward.com/content/content?type=category&prod=Anal&id=5 TO http://www.mysite.com/content/type/category/prod/Anal/id/5 and here type, prod and id values changes dynamically, like that I have 10 URL getting generated based on value from the database, how to make it work.

    Will you please help me out.

    Thank you
    Raj

  13. Hello,

    My site is in JOOMLA. I want to rewrite the home page SEF url http://67.208.116.186:81/joomla/index.php/home to the main site http://67.208.116.186:81/joomla/. Kindly guide me which code i will put in .htaccess file? I am a newbie for using apache.

    Regards,
    Murtaza

  14. thanks for the nice examples

  15. Really useful examples, thanks for sharing them

  16. Very useful!!!

    Tks ๐Ÿ˜‰

  17. Mark

    I have tried the technique for number 4

    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?page_id=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ page.php?page_id=$1

    The URL that the link in picking up is
    http://79.170.44.125/platinumbrides.co.uk/page.php?page_id=events

    I want to get it to be

    http://79.170.44.125/platinumbrides.co.uk/events

    I am getting a page not found error

    What am I doing wrong?

  18. i need to underscore for my url, how i can do it pls help me out

  19. Hi,

    My page is http://www.sndnads.com/tv.html

    i want is like http://www.sndnads.com/tv

    Please help me out…

  20. Florencia

    This is the one example that worked for me. Thanks, very clear and usefull. Saved me lots of time.
    Regards

  21. Very useful rewriting rules especially the no.4 been searched for.

  22. puneet

    Hi,

    I want to know how I can change
    http://www.mywebsite.com/index.php
    to
    http://www.mywebsite.com

    Thanks,
    puneet

  23. Hi

    i am new with .htaccess i want url
    http://dev.military-genealogy.com/nameList/ln/AA
    in place of
    http://dev.military-genealogy.com/nameList?ln=AA

    I have written following code in .htaccess file

    RewriteEngine On
    Options +FollowSymlinks
    RewriteRule nameList/ln/(.*)$ nameList.php?ln=$1

    but it is not working

    Please help me

    Thanks
    Vivek

Comments are closed.