ASP.NET中的URL重定向

时间:2010-01-15 06:44:47

标签: asp.net redirect

好的,我无法弄清楚的奇怪问题。希望有人可以。我继承了一个使用非常过度架构的内容管理系统开发的站点。我现在遇到了内置重定向功能的问题。

这是在运行ASP.NET 3.5 sp 1的专用Windows 2003服务器上。重定向存储在数据库中,我已确认数据库中存在正确的重定向。最后,文件扩展名.html已在IIS中映射到ASP.NET ISAPI。并且创建了一个HttpHandler来重定向.html请求。服务器上的默认文档按顺序为:

  • 的Default.aspx
  • 的Index.aspx
  • 的default.asp
  • 的index.asp
  • default.html中
  • 的index.html

对于此示例,我们有两个指向同一内容页面的重定向。 /example/example.html

请求/example.html时,它正确地在数据库中找到相应的重定向并完成其魔力。布埃诺。在请求/example时,它会提供404页面。它甚至不是asp.net黄色404通用错误页面。它是标准的vanilla IIS 404响应,因此看起来asp.net没有拦截这些请求。

如果要求提供任何其他信息,请告诉我,我会尽力提供。提前感谢所有伟大的推荐,我肯定会来自社区。

3 个答案:

答案 0 :(得分:2)

如果不重写CMS,可以将物理文件放在新目录“/ example”中。这将触发ASP.NET拦截请求,并希望加载您的页面。

如果您想真正破解它,您可以将IIS 404页面更改为您的应用程序中的.NET页面,该页面可以处理原始请求并重定向到您真正想要的页面。

答案 1 :(得分:2)

您应该能够映射通配符扩展以通过ASP.Net ISAPI DLL是解决方案。

Installing Wildcard Application Mappings (IIS 6.0)也可能有用。

答案 2 :(得分:0)

是的,这是正确的,因为/ example没有指向任何文件,它指向Web服务器中的目录。检查您的应用中是否存在Default.aspx / default.html或其他任何至少一个。

如果您正在使用ASP.Net MVC for REST,那么请检查您的操作是否已正确编写。