我有一个简单的 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);
}
当应用程序位于虚拟目录下时,似乎进入了无限循环。即使在 301 重定向导致无限循环之后,request.RawUrl 属性也始终返回“/default.aspx”。我该如何解决这个问题?
谢谢,
阿西夫