ASP.NET URL重写

Translate

如何在ASP.NET中重写URL?

我希望用户能够转到http://www.website.com/users/smith代替http://www.website.com/?user=smith

This question and all comments follow the "Attribution Required."

所有的回答

Translate

尝试使用托管的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]
来源
Translate

Microsoft现在发布了用于IIS的官方URL重写模块:http://www.iis.net/download/urlrewrite

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

它也将立即存在于所有Azure Web实例上。

来源
Ternence Lee
Translate

我已经使用httpmodule重写了网址www.urlrewriting.net取得了巨大的成功(尽管我相信是一个更早,更简单的版本)

如果您的实际重写规则很少,那么内置于.NET 2.0的url映射可能是一个更简单的选择,在Web上有一些关于这些重写的文章,4guysfromrolla似乎相当详尽,但是正如您所看到的,它们不支持正则表达式映射,因此在动态环境中变得相当无用(假设您的示例中的“史密斯”不是一种特殊情况,那么它们将毫无用处)

来源