我有一个让我发疯的问题。 我有一个项目,我设置并启用了SSL(通过在应用程序属性中将SSL启用标志更改为true)
然后我将网络媒体资源中的项目网址更改为SSL网址(如上图所示)
最后,我在web.config中添加了重写规则:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>
这一切都很好。我可以在新的HTTPS网址上调试我的应用程序。问题是现在我必须在HTTP上测试它,所以我改变了我的步骤。 首先,我注释掉了重写规则,然后我将Project Url更改回正常的http url并单击“Create Virtual Directory”。 最后我将“SSL Enabled”更改为false。
这就是问题所在。当我按F5时,我的浏览器使用普通的URL(正确的http),但它会重定向到https网址。我无法改变它,因为当我这样做只是重定向。 这让我很生气,因为没有规则(我能找到)重定向它。我甚至取消了我的重写规则并将其更改为:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="http://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>
要使用http网址,但不会。 有人可以帮帮我吗?!?
答案 0 :(得分:0)
最后,这非常直截了当。我注释掉了重写规则,然后在项目属性中,只需将覆盖应用程序根URL 设置为http url,同时将项目URL 保留为https版本。