在旧的asp系统上使用asp.net路由

时间:2011-02-11 14:29:58

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

我正在尝试使用MVC路由作为临时修复,以便在旧的(VB6 / ASP经典)系统上重新编写SEO(这将需要很长时间)。

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

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

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

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

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

两者都可以互换使用,因此现有网站不必更改,但我可以在外部网站上使用新的清洁网址以获得更好的搜索引擎优化

这可能吗? 还有另一种方法吗?

修改 因为不可能使用来自MVC的server.transfer,我现在正在考虑在ASP.net webforms应用程序中使用路由。 这应该允许我完成应用程序的路由部分。一旦我尝试过,它会回到这里。

3 个答案:

答案 0 :(得分:0)

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

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

http://urlrewriter.net/

编辑:你仍然需要一个.net web项目的“包装器”来为你的经典asp解决方案,正如你在你的问题中所描述的那样,当然其中有自己的问题,如其他答案所述。

答案 1 :(得分:0)

我无法想到你可以做到这一点的方法,但你可能会对iis中的url rewriter模块有所帮助:http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

答案 2 :(得分:0)

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

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