0

假设我有一个名为

http://sub.example.com/

我想重写请求,以便在用户输入时:

http://sub.example.com/id/company-name

它应该在内部重写为:

http://sub.example.com/public.aspx

(我想这类似于 SO 问题链接的处理方式,其中所有问题都有唯一的 id 和不唯一的标题,并且只有 id 用于生成页面。这样一个问题的旧链接仍然有效即使问题的标题已更改)

我尝试这样做:在Application_BeginRequestglobal.aspx首先认识到请求的页面是“公共”页面时。然后我做一个

HttpContext.Current.RewritePath("~/public/default.aspx", False)

然后我获取 id以~/public/default.aspx动态生成公司特定页面(例如公司徽标和名称)。这在我的本地开发环境中运行良好,但在服务器上似乎没有触发 Application_BeginRequest。我猜这是因为请求的文件夹不存在?

我该如何解决这个问题,或者有更好的方法来实现这个行为?

4

1 回答 1

1

在 IIS6 上,我使用了 URL Rewriter(开源,免费)。在 IIS 7(或 7.5)上,我成功使用了Microsoft 的URL Rewrite模块。

于 2010-12-28T12:21:13.137 回答