如果我有以下网站:
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
我的问题是,我怎样才能确保将它们重定向到正确的部分并仍继续执行参数?
非常感谢你的帮助。
答案 0 :(得分:3)
如果在重定向URL中设置$ Q标志,则请求/查询参数应包含在原始重定向中。如果您不希望问号包含在重定向URl中,则使用$ P代替。
例子:
使用$Q
:
原始网址:http://startingURL?param1=1¶m2=2
重定向网址:https://newURL$Q
生成的网址:https://newURL?param1=1¶m2=2
使用$P
:
原始网址:http://startingURL?param1=1¶m2=2
重定向网址:https://newURL$P
生成的网址:https://newURLparam1=1¶m2=2
如需进一步阅读,请查看TechNet文章:http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true
答案 1 :(得分: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上不存在的页面。