如果规则1首先出现,规则2将被命中吗?还是将其停止在IIS网址重写模块的规则#1处。我正在尝试跳过具有特定来源的webfonts。
def test(df1, filename, keys=["price"]):
x = df1.groupby(keys).size()
x.to_csv(f"{filename}_price.txt", sep='\t')
test(df_Example, "df_Example.csv", keys=["price"])
答案 0 :(得分:0)
如果规则1首先出现,规则2将被命中吗?还是会在IIS网址重写模块的规则#1处停止。
据我所知,两个outboundRules都会命中。它将首先运行“设置Access-Control-Allow-Origin标头”,然后运行“为字体启用CORS”。您可以编写一条简单的规则,然后使用邮递员对其进行测试。
规则如下:
此规则将修改Access-Control-Allow-Origin和Server变量。
<outboundRules>
<rule name="removingserverheader" enabled="true" stopProcessing="true">
<match serverVariable="RESPONSE_SERVER" pattern=".*" />
<action type="Rewrite" value="0" />
</rule>
<rule name="Enable CORS for Fonts">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions>
<add input="{HTTP_ORIGIN}" pattern=".*" />
</conditions>
<action type="Rewrite" value="2" />
</rule>
</outboundRules>
结果:
如果只希望触发一个规则,则不要命中另一个规则。我建议您可以尝试使用StopProcessing标志。
这意味着当执行规则操作(即匹配规则)并且打开此标志时,这意味着将不再处理后续的规则,并将请求传递到IIS请求管道。默认情况下,此标志为关闭状态。
规则如下:
<rewrite>
<outboundRules>
<rule name="removingserverheader" enabled="true" stopProcessing="true">
<match serverVariable="RESPONSE_SERVER" pattern=".*" />
<action type="Rewrite" value="0" />
</rule>
<rule name="Enable CORS for Fonts" enabled="true">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions>
<add input="{HTTP_ORIGIN}" pattern=".*" />
</conditions>
<action type="Rewrite" value="2" />
</rule>
</outboundRules>
</rewrite>
结果: