Redirect 将HTTP重定向到HTTPS,除了一个带有web.config的页面

Redirect 将HTTP重定向到HTTPS,除了一个带有web.config的页面,redirect,iis,web-config,Redirect,Iis,Web Config,我想将所有页面从HTTP重定向到HTTPS,除了根目录中的一个页面(pagename.php),该页面需要作为HTTP(需要重定向回HTTP)工作。我目前有以下代码从none www重定向到www,从HTTP重定向到HTTPS 您需要使用negate=“true”的条件为php文件添加异常 <rule name="Redirect to HTTPS"> <match url="(.*)" /> <conditions>

我想将所有页面从HTTP重定向到HTTPS,除了根目录中的一个页面(pagename.php),该页面需要作为HTTP(需要重定向回HTTP)工作。我目前有以下代码从none www重定向到www,从HTTP重定向到HTTPS


您需要使用negate=“true”的条件为php文件添加异常

 <rule name="Redirect to HTTPS">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="OFF"/>
            <add input="{URL}" pattern="(.*).php" negate="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
 </rule>

 <!--EDIT-->
 <rule name="Redirect to HTTP">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="ON"/>
            <add input="{URL}" pattern="(.*).php" />
          </conditions>
          <action type="Redirect" url="http://{HTTP_HOST}{HTTP_URL}" redirectType="Permanent" appendQueryString="false" />
 </rule>


您好,谢谢您的回答,我已经尝试过了,但问题是,我的页面被重定向到HTTPS,当它传递到mypage.php页面时,仍然保持为HTTPS,我需要将其重定向回HTTP或保持为HTTP而不是HTTPS。请注意,从我的html链接的php文件如下:
我编辑了答案,添加了另一个将php页面重定向到HTTP的规则:当链接为HTTPS时:。但是在你的评论中,你说链接是../mypage.php,所以我的建议是让你的表单操作是一个完整的url,比如
http://www.domain.com/mypage.php
。但是如果你不能做到这一点,那么这个额外的规则应该可以做到。谢谢你,但它不会起作用,它说“页面没有正确重定向”。我试图添加完整的URL,但当我点击提交按钮时,它会在将表单HTTPS传递到HTTP页面时发出安全警告。嗯,我在自己的网站上尝试了这些规则,它们工作得非常好。你确定代码中没有其他重定向吗?尝试清空缓存。另外,当你把完整的网址,你使用www?如果你不这样做,你的第一条规则可能会产生干扰。