【问题标题】:iis7 virtual-directory redirect change from iis6从 iis6 更改 iis7 虚拟目录重定向
【发布时间】:2010-11-17 10:20:34
【问题描述】:

我有一个 ASP.NET 3.5 应用程序,它从 1.1 开始,已经从 IIS5 移植到 IIS6,现在我们要移植到 IIS7。早在 1.1 天,我们就实现了基于 HTTP 模块的 URL 重写功能,它仍然可以很好地工作——相当复杂的逻辑,非常稳定。它允许我们采用这样的 URL

www.abc.com/merchant

并找出“abc”代表产品品牌,而“商家”是销售该品牌的众多公司之一。到目前为止一切顺利。

在此过程中,我们关闭了一些商家,其他商家合并,等等。为了保留他们的 URL,我们有时会使用 IIS6 的虚拟目录重定向功能将 www.abc.com/oldMerchant 重定向到 www.abc。 com/newMerchant,或者完全是别的东西,比如 www.micorsoft.com - 谁知道呢。现在大约有十几个。

我正在尝试在 IIS7 中做同样的事情,并且我发现许多描述不同机制的帖子(例如 this)。我遇到的最大问题是,在 IIS7 中,虚拟根路径仍然通过我的 URL 重写逻辑,而在 IIS6 中则没有。也就是说,URL 重写不是将 www.abc.com/oldMerchant 重定向到 www.abc.com/newMerchant,而是首先看到它并得出结论 oldMerchant 不是有效的商家(应该如此)。

在我走上编码之路解决这个问题之前,有人知道我错过了一个神奇的开关吗?

【问题讨论】:

  • 是的,我们有同样的问题,我们已经解决了。您需要显示您的 web.config 代码/设置以指出问题
  • 让你在urlrewriting.net/149/en/home.html的帮助下实现URL重写

标签: asp.net iis-7 url-rewriting redirect


【解决方案1】:

我的眼睛在我的脑海里翻滚。

也就是说,URL 重写不是将 www.abc.com/oldMerchant 重定向到 www.abc.com/newMerchant,而是首先看到它并得出结论 oldMerchant 不是有效的商家(应该如此)。

那么,在您的重写逻辑中,您能否不为要重定向的站点包含适当的重定向规则? (我假设在 IIS7 重写模块中可以进行重定向)。

【讨论】:

  • 这当然是可能的。在这种情况下,我遇到的问题是“oldMerchant”的记录完全消失了。我希望我可以用 IIS 解决这个问题,而无需像在 IIS6 中那样编码。
  • 好的,明白了。不确定发生了什么变化,但也许如果您将“oldMerchant”特殊情况重定向到 404 页面或其他什么,它会满足。
【解决方案2】:

您是在集成模式还是经典模式下运行 IIS7?我希望您在集成模式下运行。这是通过 .Net 管道发送所有流量的新模式。如果你切换到经典模式,我想它可能会再次开始为你工作。

【讨论】:

猜你喜欢
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多