gpt4 book ai didi

asp.net - 将 default.aspx 重定向到根虚拟目录

转载 作者:行者123 更新时间:2023-12-03 23:57:53 24 4
gpt4 key购买 nike

我有一个简单的 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”。我该如何解决这个问题?

谢谢,

阿西夫

最佳答案

只要您没有子目录,上面的代码就可以正常工作。 AFAIK,它是 ASP.NET 中的一个错误:当 URL 没有该扩展名时,Request.RawUrl 不应包含“/default.aspx”。我已经测试了您的代码,它在没有子目录的情况下也能正常工作,但如果 default.aspx 位于目录下,则 Request.RawUrl 对象无法摆脱 default.aspx,从而导致无限循环。

关于asp.net - 将 default.aspx 重定向到根虚拟目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com