dotnettechy.com Your Ad Here

Wednesday, September 7, 2011

URL Rewriting in ASP.NET using global.asax and web.config

URL rewriting is very important for search engines like google, yahoo, etc. as we know website getting most of the traffic from search engines.


Here I am explaining 2 way to rewrite URL in asp.net.
URL rewrining using web.config and URL rewriting using global.asax


URL rewrining using web.config:
URL rewriting in web.config is only use for small number of pages. Here you have to rewrite every page manually in web.config. I am writing sample code for 4 urls.
xml version="1.0"?>
<configuration>
<urlMappings enabled="true">
 <add url="~/About-company.aspx"
   mappedUrl="~/index.aspx?id=1" />
 <add url="~/About-products.aspx"
   mappedUrl="~/index.aspx?id=2" />
 <add url="~/Contact-us.aspx" 
   mappedUrl="~/index.aspx?id=3" />
 <add url="~/our-team.aspx" 
   mappedUrl="~/index.aspx?id=4" />
 urlMappings>
. . .
configuration>



URL rewriting using global.aspx:


This very simple way and very use full. In this way we can rewrite N number of pages and there is no need extra server configuration. Only you have to use Application_BeginRequest event. Inside this event use Context.RewritePath method to set which URL will execute internally in code behind. Here is the code:

void Application_BeginRequest(object sender, EventArgs e)
{
 
// Get the current path
 
string CurrentURL_Path = Request.Path.ToLower();

 
if (CurrentURL_Path.StartsWith("/news/"))
 {
   CurrentURL_Path = CurrentURL_Path.Trim("/");
   
string NewsID = CurrentPath.Substring(CurrentPath.IndexOf("/"));
   
HttpContext MyContext = HttpContext.Current;
   MyContext.RewritePath(
"/news-show.aspx?News=" +  NewsID);
 }
}


In next article i will write about URL rewriting using HttpModule.

10 comments:

Anonymous said...

Good article about url rewriting. it very use full. thanks

Anonymous said...

Great article
Thanks

Anonymous said...

nice one

Must said...

Thanks :)

jeet4v said...

Hi,

I have a query given bellow:

When i request www.abc.com/abc & press enter, this request should be open abc.aspx file. If i request www.abc.com/xyz then xyz.aspx file should be open.

Can any buddy please let me know how to achieve the same.

Thanks in advance.

seoinheritx said...

Useful information shared..I am very happy to read this article..Thanks for giving us nice info.

Asp.net Development | C# Development

Anonymous said...

Hi seoinheritx,

We can also submit our .net related article links on www.dotnettechy.com

It also has directory for .net websites, blogs only.

Its very useful for promoting our .net related websites/blogs

Neetu Maheshwari said...

i like ur article very much...but can you plz let me know...what i want to do exactly is..
When a member(suppose neetu) login on a page s/he will be redirected on index.aspx page with the url
www.mysite.com/member/neetu

neetu(id) is coming from database and member is a folder i created

so i m trying this with url rewriting and routing too.....but nothing works...can u plz give me exacting idea how can i do this.please tell me I am using asp.net 2.0

Vinayak Kale said...

If my url like this, c:/Vinayak/Appointment/Default.aspx, then I want to see only c:/Vinayak/Appointment
when we open Default.aspx page.
Means can we hide after Appointment. If yes, then plz give some example.

Anonymous said...

very good post keep it up