我知道如何将传入请求的 URL 大小写规范化到 IIS7.5,事实上,有一个内置的规则模板可以作为起点。但是对于出站请求怎么办(无需更改代码)?
这是我目前所处的位置:
<outboundRules>
<rule name="Outbound lowercase" preCondition="IsHTML" enabled="true">
<match filterByTags="A" pattern="[A-Z]" ignoreCase="false" />
<action type="Rewrite" value="{ToLower:{R:0}}" />
</rule>
<preConditions>
<preCondition name="IsHTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
但是,IIS 操作失败,错误代码为 500,表示 web.config 无效,可能是 {ToLower:XXXX} ,这是我从 MS 提供的入站规则模板中偷来的。
有人知道怎么做吗?
有谁知道这些选项的完整文档在哪里(我的 GoogleNinja 技能让我失望了:我发现这但“为规则指定值语法。此元素仅适用于重写操作类型”并不全面)。
谢谢,达米安
答案1
这条规则对我来说没有任何错误。唯一需要做的改变是模式。将其从“[AZ]”更改为“.*[AZ].*”,以便替换的值是整个字符串,而不仅仅是第一个大写字母。
至于您如何得到语法错误,您是否将出站规则包含在该部分中?并且,检查以确保您已安装 url rewrite 2.0。出站规则是在 v2.0 中添加的。