出站规则中的服务器变量总是显示 /jakarta/isapi_redirect.dll 而不是实际路径

Server variables in outbound rules always show /jakarta/isapi_redirect.dll rather than actual path

我在 Windows 2012/IIS8 上使用 运行 ColdFusion 11,我正在尝试设置 URL 使用出站规则在 IIS 中写入以允许添加服务器变量如果 URL 匹配某个正则表达式:

<outboundRules>
    <rule name="Add header for .ext files" patternSyntax="Wildcard">
        <match serverVariable="RESPONSE_The_Url" pattern="*" />
        <conditions>
            <add input="{REQUEST_URI}" pattern="\.ext$" negate="true" />
        </conditions>
        <action type="Rewrite" value="{REQUEST_URI}" />
    </rule>
</outboundRules>

该规则始终匹配(否定)条件并添加了值为“/jakarta/isapi_redirect.dll”的 header 我已经尝试了许多其他服务器变量,但不能找不到一个输出路径而不是 /jakarta/isapi_redirect.dll.

我认为这与 IIS 和 ColdFusion 连接器之间的交互有关,但找不到有关如何解决此问题的任何建议。有没有一种方法可以正确获取与此规则中的请求相关的 URL,或者我可以仅在某些情况下添加响应 header 的其他方法?

我能够解决此问题的唯一方法是创建一个入站规则,将原始 {REQUEST_URI} 值保存到名为 HTTP_X_ORIGINAL_URL 的自定义服务器变量中。 This guide 展示了如何执行此操作。

注意:如果您遵循指南并将自定义服务器变量命名为 ORIGINAL_URL,它将在您的出站规则中为空。我猜雅加达 ISAPI 过滤器只会转发以 HTTP_X.

开头的服务器变量