У меня есть простое приложение 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, вызывающего бесконечный цикл. Как я могу исправить эту проблему?
спасибо,
Асиф