У меня есть простое приложение ASP.NET 3.5, работающее под IIS7 в виртуальном каталоге. Поэтому URL-адрес моего приложения похож на http://example.com/app. Я хочу 301-перенаправить запрос example.com/app/default.aspx в example.com/app для лучшего SEO. Я должен сделать это перенаправление только с помощью кода, а не с помощью настроек IIS. Я не могу сделать это через код, упомянутый в этой статье:
http://www.4guysfromrolla.com/articles/072810-1.aspx
Код:
if (request.RawUrl.Equals("/default.aspx"))
{
newUrl = string.Format("{0}://{1}{2}",
request.Url.Scheme,
request.Url.Authority,
request.RawUrl.Remove(request.RawUrl.LastIndexOf("/default.aspx", StringComparison.OrdinalIgnoreCase)));
context.Response.Status = "301 moved permanently";
context.Response.AddHeader("Location", newUrl);
}
похоже, переходит в бесконечный цикл, когда приложение находится под виртуальным каталогом. свойство request.RawUrl всегда возвращает "/default.aspx" даже после перенаправления 301, вызывающего бесконечный цикл. Как я могу исправить эту проблему?
спасибо,
Асиф