mod_rewrite is an Apache module which provides a rule-based rewriting engine to rewrite requested URLs on the fly.It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule to provide a really flexible and powerful URL manipulation mechanism.
Why URL Rewriting?
SEO(Search engine optimization) – Static URLs typically Rank better in Search Engines than the dynamic ones.
User-friendlier – Static URLs are always more friendlier than dynamic URL’s.
Security – mod_rewrite helps you hide the parameters passed in the application.
How to use mod_rewrite to rewrite URL’s?
mod_rewrite is really powerful if you are familiar with the regular expressions which it uses. But learning the whole pattern syntax can be quite complicated, especially for the non-technical user.
First create a file called .htaccess and place it in folder where you want the rewriting to take effect. In case already .htaccess file exists, you can simply add the lines to it.
Open it in a your favourite text editor and start with:
Options +FollowSymLinks RewriteEngine on
Above line makes the rewrite engine to switch on. You can now add as many rewrite rules as you want.
The format is simple:
RewriteRule rewrite_from rewrite_to
“RewriteRule” is static text, i.e. you should not change. “rewrite_from” is the address which will be typed in the browser and “rewrite_to” – which page the server will actually activate. Both of these can contain “masks”, but in “rewrite_to” we will only use $ and will discuss more or “rewrite_from” part.
To rewrite urls like index.php?task=categories to categories.html
RewriteRule ^(.*).html index.php?task=$1 //This will rewrite your urls from index.php?task=$1 to categories.html.
Meaning of regxp characters used above –
– ^ character marks the beginning. i.e. you tell the server that it should not expect anything before it.
– (.*) – This combination is the most often used and it means literally “everything”. So everything you type before “.html”
– $1 – This is a parametter, saying where the first mask should be put. If you have more than one masks you can use $2, $3 etc. You’ll see more in the following examples.
– Using “numbers”. You can easily limit the rewriter to rewrite if it meets only numbers at a certain place:
Options +FollowSymLinks RewriteEngine on RewriteRule ^(category|product|services).html index.php?task=$1 #Here '|' means the 'OR'. This tells the server to rewrite only if the file name is category.html OR product.html OR services.html RewriteRule ^category-([0-9]*).html index.php?task=category&id=$1 #With ([0-9]*) mask you tell the rewrite engine that on the mask place it should expect only numbers.
Note : Before rewriting urls, you have to remove any special characters from the text and its better to replace space with “-“.
MOD_REWRITE for Dummies
How to: URL re-writing in PHP ?
Pretty URLs – a guide to URL rewriting
Hide .php extension with url rewriting using .htaccess
Thanks a lot for sharing this with all. It is really useful.
really nice job……..thanxxx dear.keep it up
It’s an amazing stuff, really useful for a newbie. Thanks a lot.
[…] URL REWRITE MOD_REWRITE IN PHP JavaTechie […]
Dude, great post informing about SEO. This is definitely better than anything I’ve ever seen.
This is great in terms of search engine optimization. Nothing looks to rag upon it compared to that!
Been following your blog for a while, I’ve never commented on anything. I just want to give Kudo’s for a great site and good posts…Thanks
Comments are closed.