【问题标题】:IIS6 - How do I redirect users to another site for every page with a few exceptions?IIS6 - 除了少数例外,如何将用户重定向到每个页面的另一个站点?
【发布时间】:2008-12-10 12:35:23
【问题描述】:

我在 IIS 6 中设置了一个网站,假设它名为 http://www.this.com

我已经为这个网站设置了一个重定向到 http://www.that.com,它维护了如下的目录结构和查询参数:

http://www.that.com$S$Q - 使用选项“上面输入的确切网址”

这很好用,每当有人请求时,例如:

http://www.this.com/subfolder/page.aspx?Id=1

然后他们最终在:

http://www.that.com/subfolder/page.aspx?Id=1

现在,我有一个页面,实际上是一个处理程序,http://www.this.com/image.axd,我不想重定向它。

它的语法是什么?我已经阅读了 Redirection Using Wildcards 部分 here,但我不知道如何做看起来很直接的事情。

请注意,image.axd 是一个处理程序,因此我不能只“右键单击”它并设置重定向属性,因为它实际上并不存在。

我在子文件夹中还有一些其他页面我不想重定向,例如:

http://www.this.com/subfolder/donotredirectthispage.aspx

任何帮助将不胜感激。

编辑:有几个人提到了使用 ISAPI_Rewrite,对此我很感激,但我真的不想在网站配置中引入另一个复杂性。 IIS 似乎暗示我可以使用 !和 0 到 9 个变量。

难道真的不能用 IIS 做到这一点吗?

我当前的解决方法是在我想要重定向的所有文件夹和页面上设置重定向属性,但我不想重定向的页面除外,但这是管理方面的噩梦。

【问题讨论】:

  • 嗨,Carl,我刚刚开始研究这种重定向...我不确定在哪里输入这种参数化类型的重定向。您是在 IIS 中执行此操作还是直接在元数据库中执行此操作?或者也许在 web.config 中?我也在使用 IIS6 问候,雅克

标签: redirect iis-6


【解决方案1】:

您可以为 page not found 错误 (404) 实现自定义错误页面,为您执行重定向。您将关闭 IIS 中的重定向。在您的自定义错误页面中构建重定向逻辑。然后配置您的网站,以便 404 错误重定向到您的错误页面。

【讨论】:

  • 考虑到他提到不喜欢一些额外的复杂性的更新问题,这确实是影响最小的解决方案。我自己实现了它,这很容易。只需将您的站点保持原样并配置一个自定义 404 来加载您执行 response.redirect 的 _redirect.asp。然后删除您不想保留的所有文件。对这些的请求将使用自定义 404 重定向。
【解决方案2】:

如果您可以在 IIS 服务器上安装软件,我建议您使用工具来重写您的请求 URL。

对于 IIS 6.0,我使用了ISAPI_Rewrite,它运行良好。它是轻量级的并且非常可配置。有一个免费的“精简版”版本可以满足您的要求。

您使用包含与 HTTP 请求匹配的规则的文本文件配置程序,然后在匹配规则后编写要执行的操作。您的实例可能需要通用重定向规则(类似于 IIS 中的规则)和例外规则。

【讨论】:

    【解决方案3】:

    您应该研究使用标头重写模块的可能性,例如ISAPI_rewrite。有一个免费的“精简版”可用,足以满足您的需求。

    这可以为您做以下事情:在服务器上执行实际页面之前,根据一组可配置的规则重写请求标头(或发出 HTTP 301/302 重定向)。底层服务器看到剩余的请求,就好像客户端真的以这种方式发出它们一样。

    以下规则将单独处理 image.axd 请求,同时重定向其他所有内容。

    # image.axd stays unchanged ("L" is the "last rule" flag)
    RewriteCond Host: www.\this\.com
    RewriteRule ^.*?\bimage\.axd\b.* $0 [L]
    
    # all requests that have not been stopped by an earlier rule
    # end up here ("RP" is the "permanent redirect" flag)
    RewriteCond Host: www.\this\.com
    RewriteRule .* http://www.that.com$0 [RP,L]
    

    【讨论】:

      猜你喜欢
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 2016-09-03
      • 1970-01-01
      • 2019-01-29
      相关资源
      最近更新 更多