ASP.NET URL重写

ysequi 发布于 2018-02-09 asp.net 最后更新 2018-02-09 01:09 926 浏览

如何在ASP.NET中重写URL? 我希望用户能够转到 http://www.website.com/users/smith ,而不是 http://www.website.com/?user=smith

已邀请:

yet

赞同来自:

试试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]

wet

赞同来自:

Scott Guthrie介绍了如何在.NET中非常广泛地使用here。 我已经使用httpmodule方法,它运作良好。这基本上是ManagedFusion为您做的。

funde

赞同来自:

我使用了一个httpmodule来从www.urlrewriting.net中进行URL重写,虽然我相信更早,更简单的版本) 如果你有很少的实际的重写规则,那么内置到.NET 2.0的URL映射可能是一个更容易的选择,这里有一些写在网上,4guysfromrolla看起来相当详尽,但你可以看到他们不支持正则表达式映射在动态环境中是相当无用的(假设在你的例子中“smith”不是特例,那么这些将是没有用的)

yautem

赞同来自:

微软现在为IIS提供一个官方URL重写模块:http://www.iis.net/download/urlrewrite 它支持大多数类型的重写,包括设置服务器变量和通配符。 它也将在现有的所有Azure Web实例中存在。