我该如何在ASP.NET中重写URL?
我希望用户能够访问以下URL:
http://www.website.com/users/smith
取代
http://www.website.com/?user=smith
我该如何在ASP.NET中重写URL?
我希望用户能够访问以下URL:
http://www.website.com/users/smith
取代
http://www.website.com/?user=smith
试用Managed Fusion Url Rewriter和Reverse Proxy:
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进行url重写,来源于www.urlrewriting.net,取得了很大的成功(尽管我相信这只是早期版本)
如果您只有非常少量的重写规则,那么内置在.NET 2.0中的url映射可能是一种更简单的选择。网络上有一些关于此方面的说明文档,其中4guysfromrolla所提供的似乎比较全面,但正如您所看到的,它们不支持正则表达式映射,在动态环境下几乎无用(假设您的示例中的“smith”不是特例,那么这些就没有任何用处)