如何自动将.html页面重新映射到.aspx页面?

时间:2008-10-16 11:57:27

标签: asp.net redirect

我们有一个网站;到目前为止只有HTML页面。现在我们正在ASP .Net重新开发它。

这意味着所有.html页面都将更改为.aspx扩展名。问题是,对这些页面有很多外部引用,我们不想立即将每个链接转换为aspx。

有没有办法将.html页面的链接重定向到.aspx页面?例如,有没有办法服务器检查指定的文件,发现它链接到.html页面并自动打开.aspx页面?

5 个答案:

答案 0 :(得分:3)

我会借此机会将扩展名(.html,.aspx等)留在后面。

对于我们所有的主要网站,我们现在使用自定义映射系统,其中虚拟页面URI映射到特定的.aspx(or.html)页面。这有一些好处:

  • 您的访问者会看到“更好”的URI;
  • 您可以随意在幕后重新整理您的网站,而不会破坏现有的传入链接;
  • 您可以使用动态虚拟URI,例如代替/Product.aspx?p=Blah,您可以使用/ Products / Blah

我们有自己的自定义系统,但我相信ASP.NET MVC现在内置了这个功能。

(如果沿着这条路线前进,可以为指向新.aspx页面的.html URI添加遗留映射。)

答案 1 :(得分:1)

如果你进行某种url重写,你可以让所有的链接保持不变,只是提供aspx页面,请求index.html被映射到index.aspx

这是ms关于asp.net url重写的内容:

http://msdn.microsoft.com/en-us/library/ms972974.aspx

答案 2 :(得分:1)

您可能希望查看ASP.NET System.Web.Routing命名空间,它是在.NET 3.5 SP1中添加的,我相信:

http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx

http://msdn.microsoft.com/en-us/library/system.web.routing.aspx

答案 3 :(得分:0)

以下是我们处理类似情况的方法。

  1. 设置IIS以将html扩展名映射到ASP.Net,而不是直接处理它。

  2. 在HttpApplication.BeginRequest处理程序中,查看是否正在为已迁移到aspx的html文件发出请求,然后通过重定向响应来提供aspx页面。

  3. 如果尚未映射html文件,只需提供静态html文件。

答案 4 :(得分:0)

就像stusmith所说,你不应该让你的底层技术暴露(当然也不会强制要求)你的URI看起来像什么。最好的方法是如上所述,根本没有显示任何扩展,但在目前的情况下,可能会以这样的方式配置系统:.html文件就像它们是.aspx一样?

我不知道关于.NET的第一件事,但我认为这是可能的,而不必经历太多的箍。

第二种最好的方法是重写URI,但这需要额外的服务器工作(不多,但它加起来)。

(不要使用元刷新重定向。其他所有解决方案都更好。)