【问题标题】:How to set IIS url rewrite for http header如何为 http 标头设置 IIS url 重写
【发布时间】:2020-10-06 01:54:58
【问题描述】:

这是我的 iis 网站中的入站规则。

    <rewrite>
        <rules>
            <rule name="ToBackEnd">
                <match url="^v1/api/(.*)" />
                <action type="Rewrite" url="https://172.16.8.78/v1/api/{R:1}" />
            </rule>
        </rules>
    </rewrite>

我想为这个请求的响应添加一个标头(Access-Control-Allow-Origin)。中有一些解决方案标签。但我不想要这个?如何在规则中设置?

【问题讨论】:

  • “我不想要”是一个有趣的想法。好吧,只能使用CORS模块之类的东西,blogs.iis.net/iisteam/getting-started-with-the-iis-cors-module入站规则不能修改响应。
  • 为什么“我不想要”?因为我将其应用于具有内部 cors 策略的现有网站。因此,当我在 web.config 中添加一个新的时,双重 Access-Control-Allow-Origin * 策略发生错误
  • 尝试位置标签。使用它们,您可以为某些路径设置 CORS 规则。

标签: iis iis-10 url-rewrite-module


【解决方案1】:

URL 重写出站规则可以帮助覆盖应用程序中针对特定 URL 的 Access-Control-Allow-Origin,但它不能添加响应标头。因此,如果您可以通过重写现有的 Access-Control-Allow-Origin 来获得预期的标头。那么就可以涉及出站规则了。

    <outboundRules>
        <rule name="outbound rule" enabled="false">
            <match serverVariable="Access-Control-Allow-Origin" pattern=".*" />
            <action type="Rewrite" value="*" />
        </rule>
    </outboundRules>

如果您只需要为特定页面添加标题。您可以使用带有 &lt;location&gt; 标签的 CORS 模块 https://www.iis.net/downloads/microsoft/iis-cors-module

如果您需要为通配符 URL 添加另一个标头,例如 v1/api/*。那么集成管道中的自定义 httpmodule 将是一个选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2012-07-23
    • 2014-12-03
    • 2017-12-13
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多