【问题标题】:Use asp.net routing on top of old asp system在旧的 asp 系统上使用 asp.net 路由
【发布时间】:2011-06-25 14:28:42
【问题描述】:

我正在尝试使用 MVC 路由作为临时修复,以便在旧(VB6/ASP 经典)系统上获得对 SEO 友好的 url,同时它正在被重写(这将需要很长时间)。

旧系统有 1 个带有 vb6 dll 的 asp 文件,该文件生成 html,由 master.asp 中的 response.write 提供服务。

所以该系统上的网址如下所示:
www.foo.com/master.asp?sessionid=abc123&pagetype=Item&ItemID=My-widget

我想知道是否可以使用 MVC 项目为更清晰的 url 创建路由 并让控制器映射值并构建相应的旧 url,然后对其执行 Server.Transfer。

所以新的网址看起来像:
www.foo.com/Item/My-widget

并映射到旧网址
www.foo.com/master.asp?sessionid=abc123&pagetype=Item&ItemID=My-widget

两者可以互换使用,因此现有网站不必更改,但我可以在外部网站上使用新的更简洁的 url 以获得更好的 SEO

这可能吗? 有没有其他方法可以做到这一点?

编辑: 由于无法从 MVC 使用 server.transfer,我现在正在考虑在 ASP.net webforms 应用程序中使用路由。 这应该允许我完成应用程序的路由部分。一旦我尝试过,会在这里发布。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-routing


    【解决方案1】:

    我建议您改用 UrlRewriter.net 库。它比内置路由框架(包括正则表达式支持)具有更多功能,支持永久重定向,并且都可以在 web.config 文件中进行配置。

    我之前尝试过使用路由来处理这类事情,但发现它很快就变得非常有限。

    http://urlrewriter.net/

    编辑:您仍然需要一个 .net Web 项目“包装器”来用于您的经典 asp 解决方案,正如您在问题中所描述的那样,这当然伴随着它自己的问题,如其他答案中所述。

    【讨论】:

      【解决方案2】:

      我想不出一种方法可以做到这一点,但你可能对 iis 中的 url 重写器模块有一些运气:http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

      【讨论】:

        【解决方案3】:

        我认为这可以工作,但听起来并不理想。我怀疑您在两个会话之间共享数据时也会遇到一些问题。如果您计划迁移到 .net,这可能是一个好主意,并且该应用程序将在“一半”状态下运行一段时间(如果是这样,我建议之前引入双方共享的托管核心库担心 url 重写)。

        我最近没有对经典 ASP 做太多工作,但我认为URL Rewriting in Classic ASP 上的这篇文章可能对你有所帮助。

        【讨论】:

          猜你喜欢
          • 2013-11-29
          • 1970-01-01
          • 1970-01-01
          • 2012-04-30
          • 2013-12-08
          • 2011-06-06
          • 1970-01-01
          • 2014-03-26
          • 1970-01-01
          相关资源
          最近更新 更多