The easiest way to make a redirection in ASP.NET is using Response.Redirect(url). What it actually does is, that it creates a response with the “302 (Object Moved)” status code and the target destination. It tells the browser that the requested page is temporarily moved to a new location and then the browser makes a request to the new destination.

If the page is permanently moved, then the 302 status code is no longer correct. Search engines also looks at 301 and 302 redirects differently. Here’s a quote from The Internet Digest:

From a search engine perspective, 301 redirects are the only acceptable way to redirect URLs. In the case of moved pages, search engines will index only the new URL, but will transfer link popularity from the old URL to the new one so that search engine rankings are not affected.

There is no natural way of doing a 301 redirect in ASP.NET, so you have to set the HTTP headers manually. I’ve written a small method that illustrates how to do it. All you have to do is to call it from the Page_Load or preferably from Page_Init or in ASP.NET 2.0 Page_PreInit.

protected void Page_PreInit(object sender, EventArgs e)






private void PermanentRedirect(string url)



  Response.StatusCode = 301;

  Response.AppendHeader("location", url);




Comments are closed