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