I've been going through an SEO phase recently and part of that was renaming the aspx files of my ASP.NET 3.5 site to reflect the keywords and phrases i was trying to target. For example, a page called Services.aspx that might target web development services would be renamed Web-Development-Services.aspx. I noticed after renaming the files that I was getting errors because the search engines still had my old page names cached and these pages no longer existed.
To stop the bleeding, I had the customErrors node in my web.config redirect to my home page (this is not a solution!) Next I recreated the old pages (such as Services.aspx) and left them empty. Then in the code-behind of each I added some code:
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", "http://mydomain.com/Web-Development-Services.aspx");
What does this do? When someone requests the old outdated url, it sends a 301 permanent redirect to the new url, which lets the search engine know to use the new page.
In .NET 4.0, there will be an even simpler way to do this:
Response.RedirectPermanent("~/Web-Development-Services.aspx");
Using one of these 301 permanent redirects methods you can easily keep users and search engines up to date on the structure of your site, even if you've renamed all of the pages for SEO purposes!
5eb4f8d9-b3c6-4782-a242-134f22b036e2|0|.0