代码之家  ›  专栏  ›  技术社区  ›  nullDev

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

  •  2
  • nullDev  · 技术社区  · 17 年前

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

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

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

    5 回复  |  直到 16 年前
        1
  •  3
  •   stusmith    17 年前

    我想借此机会留下扩展(.html、.aspx等)。

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

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

    我们有自己的定制系统,但我相信ASP.NETMVC现在已经内置了此功能。

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

        2
  •  1
  •   John Boker    17 年前

    以下是ms对asp.net url重写的看法:

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

        3
  •  1
  •   stusmith    17 年前
        4
  •  0
  •   Sijin    17 年前

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

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

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

        5
  •  0
  •   Berserk    17 年前

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

    我不知道关于.NET的第一件事,但我认为这是可能的,不需要经历太多的困难。

    第二种最好的方法是重写URI,但这需要对服务器进行额外的工作(虽然不多,但总的来说)。

    推荐文章