【问题标题】:How to automatically remap .html pages to .aspx pages?如何自动将 .html 页面重新映射到 .aspx 页面?
【发布时间】:2008-10-16 11:57:26
【问题描述】:

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

这意味着所有 .html 页面都将更改为 .aspx 扩展名。问题是,这些页面有很多外部引用,我们不想马上去查看每个指向 aspx 的链接。

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

【问题讨论】:

    标签: asp.net redirect


    【解决方案1】:

    我会借此机会放弃扩展名(.html、.aspx 等)。

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

    • 您的访问者会看到“更好”的 URI;
    • 您可以在幕后按照您认为合适的方式重新组织您的网站,而不会破坏现有的传入链接;
    • 您可以使用动态虚拟 URI,例如,您可以使用 /Products/Blah 来代替 /Product.aspx?p=Blah

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

    (如果您走这条路,您可以为指向新 .aspx 页面的 .html URI 添加旧版映射)。

    【讨论】:

      【解决方案2】:

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

      下面是 ms 关于 asp.net url 重写的说法:

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

      【讨论】:

      • 你能详细说明一下吗?我很抱歉,但我是初学者。 :)
      • 只是加了一个链接,基本上所有的请求都被拦截了,你决定服务什么。
      【解决方案3】:

      您可能想查看 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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          【解决方案5】:

          就像 stusmith 提到的那样,您不应该让您的底层技术暴露(当然也不是强制)您的 URI 的样子。如前所述,最好的方法是完全不显示任何扩展名,但在当前情况下,也许可以将系统配置为使 .html 文件像 .aspx 一样被处理?

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

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

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

          【讨论】:

            猜你喜欢
            • 2010-11-08
            • 1970-01-01
            • 1970-01-01
            • 2012-10-15
            • 1970-01-01
            • 2021-02-21
            • 2013-05-17
            • 1970-01-01
            • 2010-10-07
            相关资源
            最近更新 更多