2012-01-15 68 views
0

作为网址缩短服务的一部分,我需要用户能够访问诸如example.com/1Bta62之类的网址,最终在example.com/view.aspx?id=1Bta62处,而example.com/1Bta62则保留在其浏览器地址栏中。如何才能做到这一点?我使用的是Windows服务器(项目是C#ASP.NET);我宁愿不必使用脚本(即只是在web.config中的东西会很好),但欢迎任何方法的答案。动态生成以上1Bta62之类的url结尾。如何将例如example.com/1Bta62的网址改写为example.com/view.aspx?id=1Bta62,而用户仍然看到example.com/1Bta62?

在此先感谢!

编辑:有没有人实际管理/知道如何做到这一点与web.config文件 - 我认为这可以做到?

回答

0

我会推荐Url Rewrite Module,它已被设计来做到这一点。这是一个IIS模块,无需对应用程序进行更改。

IIS URL重写2.0使Web管理员可以创建功能强大的 规则来实现更易于用户记忆和 更容易被搜索引擎找到的网址。通过使用规则模板,重写 映射,.NET提供程序和其他功能集成到IIS管理器中,Web管理员可以轻松地设置规则来定义URL重写行为的基础HTTP标头,HTTP响应或请求 标头,IIS服务器变量,甚至是复杂的程序规则。在 此外,网络管理员可以执行重定向,发送自定义 响应,或停止HTTP请求

更新:

在RouteMagic看看: http://haacked.com/archive/2011/01/30/introducing-routemagic.aspx

+0

这看起来很有趣,我使用的是共享主机服务 - 我可以使用此功能而无需控制IIS? – James 2012-01-15 20:03:05

+1

不幸的是没有。已更新答案 – 2012-01-16 11:45:18

-1

,请尝试注册在区域的路由注册。例如,对于例如,

context.MapRoute(
      "Myproject_default", 
      "Myproject/{controller}/{action}/{id}", 
      new { controller = "Myproject", action = "index", id = UrlParameter.Optional } 
     ); 
+0

-1 - 哪个区域?它与问题有什么关系? – 2012-01-16 11:46:53

+0

我该如何实施解决问题的领域(我认为这是可能的)? – James 2012-01-16 20:24:08

相关问题