如何在ASP.NET中重写URL?
我希望用户能够转到http://www.website.com/users/smith而不是http://www.website.com/?user=smith
如何在ASP.NET中重写URL?
我希望用户能够转到http://www.website.com/users/smith而不是http://www.website.com/?user=smith
尝试使用托管的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]
Microsoft现在发布了用于IIS的官方URL重写模块: http : //www.iis.net/download/urlrewrite
它支持大多数类型的重写,包括设置服务器变量和通配符。
它也将立即存在于所有Azure Web实例上。
我已经使用httpmodule从www.urlrewriting.net重写了url, 取得了巨大的成功(尽管我相信这是一个更早,更简单的版本)
如果您的实际重写规则很少,那么内置于.NET 2.0的url映射可能是一个更简单的选择,网络上有一些这样的记录, 4guysfromrolla似乎相当详尽,但是您可以看到它们并没有支持正则表达式的映射在动态环境中是如此(假设您的示例中的“史密斯”不是特殊情况,那么它们将毫无用处)