URL 重写 500.52:无法识别的元素 'serverVariables'

URL Rewrite 500.52: Unrecognized element 'serverVariables'

我只需要使用我的 web.config 来实现反向代理,我遇到了 500.52 错误的问题。正如网上许多地方所建议的那样,我添加了 serverVariables 部分以包含 HTTP_ACCEPT_ENCODING 变量,但我遇到了一个错误:

配置错误 无法识别的元素'serverVariables'

下面是我的web.config.

<rewrite>
      <allowedServerVariables>
        <add name="HTTP_ACCEPT_ENCODING" />
    </allowedServerVariables>
      <outboundRules>
        <rule name="reverseProxy">
          <match pattern="http://linkInCode.com"></match>
          <serverVariables>
            <set name="HTTP_ACCEPT_ENCODING" value="" />
          </serverVariables>
          <action type="Rewrite" value="https://linkIWant.com/script.js"></action>
        </rule>
      </outboundRules>
    </rewrite>

有什么问题? ServerVariables 应该是一个可识别的元素。

您需要先在 <allowedServerVariables>,

中注册服务器变量

https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-20-configuration-reference#Allowed_Server_Variables_List

使用 this blog post,我复制了给定的示例并根据需要更改了部分。

<rewrite>
    <rules>
        <rule name="Rewrite to article.aspx">
            <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
            <action type="Rewrite" url="https://URLtoHide.com" />
        </rule>
</rules>
<outboundRules>
    <rule name="Rewrite to clean URL" preCondition="IsHTML">
        <match filterByTags="A" pattern="http://http://URLtoShow.com" />
        <action type="Rewrite" value="https://URLtoHide.com" />
    </rule>
    <preConditions>
        <preCondition name="IsHTML">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
        </preCondition>
    </preConditions>
</outboundRules>