如何在ASP.NET中重写URL?ASP.NET URL重写
我希望用户能够转到http://www.website.com/users/smith,而不是http://www.website.com/?user=smith
如何在ASP.NET中重写URL?ASP.NET URL重写
我希望用户能够转到http://www.website.com/users/smith,而不是http://www.website.com/?user=smith
尝试管理融合网址重写和反向代理:
http://urlrewriter.codeplex.com
改写这个规则会be:
# 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]
一个建议:我会调整第一个RewriteRule看起来像^ /?用户=(\ w *)以便http://www.website.com/?users=smith&day=monday不生成http://www.website.com/users/smith&day=monday – Dscoduc 2009-02-06 17:13:32
这是一个好主意,并完全支持这个.NET版本。最初的意图是让我的示例与不支持该语法的mod_rewrite兼容。 – 2009-05-26 16:14:42
这太棒了。 – 2009-08-16 07:52:53
Scott Guthrie介绍了如何在.Net中原生地完成这项工作here。
我已经使用了httpmodule方法,它工作得很好。这基本上是ManagedFusion为您做的。
我已经使用了从URL重写www.urlrewriting.net取得了巨大成功的HTTP模块(虽然我相信早得多,简单的版本)
如果你有很少的实际重写规则,那么内置于.NET 2.0的URL映射可能是一个更容易的选择,网上有几个这样的写法,4guysfromrolla似乎是相当详尽的,但你可以看到它们不支持正则表达式映射,因为它们在动态环境中显得相当无用(假设“史密斯“在你的例子中是不是一个特例,那么这些将是没有用的)
微软现在发运一个官方URL重写Mod对于IIS:http://www.iis.net/download/urlrewrite
它支持大多数类型的重写,包括设置服务器变量和通配符。
它也将在所有开箱即用的Azure Web实例上存在。
对于一步一步的解释按照下面的链接:http://challadotnetfaq.blogspot.com/2011/08/url-rewritting-in-aspnet.html – 2011-08-03 12:26:13