首页 > 解决方案 > 重写 URL 重定向

问题描述

我正在尝试从此地址重写 URL:

https://merchant.test-01.mysite.co/payment-gateway/vend?amount=69.90®ister_id=12¤cy=NZD

到这个地址:

https://mysite.co/nz/test-01/merchant/payment-gateway/vend?amount=69.90®ister_id=12¤cy=NZD

我试试这个:

<rule name="test01Generic" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(\S+?).test-01.mysite.co$" />
    </conditions>
    <action type="Redirect" url="https://mysite.co/nz/test-01/{C:1}" redirectType="Found" />
</rule>

有了这个结果:

https://mysite.co/nz/test-01/merchant?amount=69.90®ister_id=12¤cy=NZD

哪里payment-gateway/vend不见了

和这个

<rule name="test01Generic" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(\S+?).test-01.mysite.co$" />
    </conditions>
    <action type="Redirect" url="https://mysite.co/nz/test-01/{C:1}{REQUEST_URI}" redirectType="Found" />
</rule>

有了这个结果:

https://mysite.co/nz/test-01/merchant/payment-gateway/vend?amount=69.90®ister_id=12¤cy=NZD&amount=69.90®ister_id=12¤cy=NZD

查询参数加倍。

关于我缺少什么的任何想法?

标签: redirectiishttp-redirect

解决方案


请将 {REQUEST_URI} 修改为 {URL} 并将 appendQuerySrin 设置为 true,这样就可以了。

 <rule name="test0Generic" stopProcessing="true">
    <match url=".*" />
    <conditions>
    <add input="{HTTP_HOST}" pattern="^(\S+?).test-01.mysite.co$" />
    </conditions>
    <action type="Redirect" url="https://mysite.co/nz/test-01/{C:1}{URL}" appendQueryString="true" redirectType="Found" />
</rule>

在此处输入图像描述


推荐阅读