如何在 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 进行 url 重写 www.urlrewriting.net 取得了巨大的成功(尽管我相信有一个更早、更简单的版本)

如果您的实际重写规则很少,那么 .NET 2.0 中内置的 url 映射可能是一个更简单的选择,网上有一些关于这些的文章, 4人来自罗拉 一个似乎相当详尽,但正如您所看到的,它们不支持正则表达式映射,因此在动态环境中显得相当无用(假设您的示例中的“smith”不是特殊情况,那么这些将没有用)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top