2

如果我有一个类似下面的网站:

https://xxx/section1/
https://xxx/section2/
https://xxx/section3/

但用户也可以使用参数访问 URL:

https://xxx/section1/&p=1494943

我将在 IIS6 中创建一个单独的站点,它将所有 HTTP 请求重定向到 HTTPS 网站:

request: http://xxx/
redirected to: https://xxx/

在同样的意义上:

request: http://xxx/section2/&p=1474724
redirected to: https://xxx/section2/&p=1474724

我的问题是,如何确保它们被重定向到正确的部分并且仍然保留参数?

非常感谢您的帮助。

4

2 回答 2

3

如果您在重定向 URL 中设置 $Q 标志,则请求/查询参数应包含在原始重定向中。如果您不希望在重定向 URl 中包含问号,请改用 $P。

示例:
使用$Q
原始 URL: http://startingURL?param1=1&param2=2
重定向 URL: https://newURL$Q
结果 URL: https://newURL?param1=1&param2=2

使用$P
原始 URL: http://startingURL?param1=1&param2=2
重定向 URL: https://newURL$P
结果 URL: https://newURLparam1=1&param2=2

如需进一步阅读,请查看 TechNet 文章: http ://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true

于 2013-11-06T21:25:31.007 回答
0

将 DokuWiki 实例从一台服务器移动到另一台服务器时,我遇到了类似的问题,然后想设置 HTTP 重定向,以便它将请求重定向来自例如:

https://bananas.tycoon.ex/doku.php?id=knowledgebase:iis

...至:

https://oranges.tycoon.ex/doku.php?id=knowledgebase:iis

在找到可行的解决方案之前,我尝试了很多方法。下面是最终达到预期结果的 web.config 配置:

<configuration>
    <system.webServer>
        <httpRedirect enabled="true" destination="https://oranges.tycoon.ex$S$Q" exactDestination="true" />
    </system.webServer>
</configuration>

最后一个重要部分是 [exactDestination="true"]。没有这个,我被重定向到:

https://oranges.tycoon.ex/doku.php?id=knowledgebase:iis/doku.php

...由于额外附加的“/doku.php”,这自然使我进入了 wiki 的一个不存在的页面。

于 2018-08-30T01:57:15.033 回答