IIS 重定向 url 条带异常

IIS redirect with url exception for stripe

我正在更新一个网站的条带结帐,我在本地主机上成功地完成了它,但是当我在 windows 服务器上将它置于实时模式时它停止工作了。问题是,当我应该从 stripe 重定向到结帐页面时,url 被更改并变成了没有意义的东西:

正确的url:www.checkout.stripe.com/pay/cs_..。 我被重定向到的 url:www.mysite.com/pay/cs_..

我一直在想这可能是什么原因,我认为这是我在 windows 服务器上的 URL 重写规则。我想为规则添加一个例外并允许启动条带结帐,但我不知道该怎么做。

下面是我的 web.config 文件:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>                 
                <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8008/{R:1}" />
                </rule>
                <rule name="HTTPS" enabled="false" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

您显示的文件仅包含 入站 重写规则。但是您的服务器响应有问题。因此,您应该在正确的配置文件中修复 outbound 重写规则。

我明白了。这是我最后的 web.config

<configuration>
<system.webServer>
    <urlCompression doDynamicCompression="false" />
    <rewrite>
        <rules>
            <clear />
            <rule name="ReverseProxyInboundRule">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://localhost:8008/{R:1}" />
            </rule>
            <rule name="stripe redirect in checkout" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_URI}" pattern="/pay/" />
                </conditions>
                <action type="Redirect" url="checkout.stripe.com{REQUEST_URI}" redirectType="SeeOther" />
            </rule>
        </rules>
    </rewrite>

</system.webServer>

我的问题不是真正理解 URL 重写中选项的含义。我查看了课程 URL Rewrite for Developers,它真的很有帮助。我能够快速解决问题。