有没有一种干净利落的方法可以将所有访问HTTP://版本的站点的尝试重定向到它的HTTPS://等效项?
发布于 2011-09-30 10:12:44
我认为最干净的方式是所描述的here on IIS-aid.com。它只适用于web.config,所以如果你改变了服务器,你不必记住你使用403.4自定义错误页面或其他特殊权限所经历的所有步骤,它就能正常工作。
<configuration>
<system.webServer>
<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}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>发布于 2016-07-14 16:31:31
我发现的最简单、最干净的解决方案是
设置自定义错误页
好处是它不需要额外的代码行。缺点是它会将你重定向到一个绝对的url。
发布于 2009-07-30 14:46:56
一种干净的方式只改变http、->、https中的URL方案,并保持所有其他内容相同。它应该在服务器端,这样就不会出现浏览器问题。
除了使用javascript (HttpRedirect.htm)而不是服务器端重定向之外,JPPinto.com对如何做到这一点有Step-By-Step instructions。由于某些原因,如果你启用了“显示友好的HTTP错误消息”,我无法让IE运行javascript,这是默认开启的。脚本的另一件事是重定向到path甚至在FF或Chrome中都不起作用。脚本总是重定向到根目录。(也许我遗漏了什么,因为它应该重定向到path。)
由于这些原因,我使用了一个ASP页面进行重定向。当然,缺点是这需要在服务器上启用传统的ASP。
OpsanBlog有一个可以与IIS6很好地协同工作的ASP script and instructions。
在IIS7中使用这种方法时,我遇到了一些问题。主要是用户界面问题,因为IIS7很容易遗漏一些东西。
IIS管理器应在标题中显示文件名。
https://stackoverflow.com/questions/46347
复制相似问题