ASP.NET URL重写

如何在ASP.NET中重写URL?

I would like users to be able to goto http://www.website.com/users/smith instead of http://www.website.com/?user=smith

0
额外 编辑
意见: 1

3 答案

尝试Managed Fusion Url重写器和反向代理:

http://urlrewriter.codeplex.com

重写这个的规则是:

# clean up old rules and forward to new URL
RewriteRule ^/?user=(.*)  /users/$1 [NC,R=301]

# rewrite the rule internally
RewriteRule ^/users/(.*)  /?user=$1 [NC,L]
0
额外
这是一个好主意,并完全支持这个.NET版本。最初的意图是让我的示例与不支持该语法的mod_rewrite兼容。
额外 作者 Nick Berardi,
建议:我会将第一个RewriteRule调整为^ /?users =(\ w *),以便 website.com/?users=smith&day=monday 不会生成网站.COM /用户/史密斯和天=周一
额外 作者 Dscoduc,

Scott Guthrie介绍了如何在.Net中以相当广泛的方式完成这项工作。这里

我已经使用了httpmodule方法,它运行良好。这基本上是ManagedFusion为您做的。

0
额外
谢谢,ScottGu博客很有用!
额外 作者 Bjørn Otto Vasbotten,

微软现在为IIS发布了一个官方URL重写模块: http://www.iis.net/download/urlrewrite

它支持大多数类型的重写,包括设置服务器变量和通配符。

它也将在所有开箱即用的Azure Web实例上存在。

0
额外
这看起来很有趣。你知道它是否可以在IIS6上运行,并且它在网络堆栈中位于什么级别?
额外 作者 GateKiller,
这是一个仅适用于IIS7和解决方案(其模块学习.iis.net / page.aspx / 121 / iis-7-modules-overview ),对于IIS6,您需要www.isapirewrite.com或www.urlrewriter.net,isapi rewrite似乎是一个稳定的商业产品, IIS6
额外 作者 Sam Saffron,