首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS7: HTTP->HTTPS

IIS7: HTTP->HTTPS
EN

Stack Overflow用户
提问于 2008-09-05 17:23:29
回答 6查看 71.4K关注 0票数 147

有没有一种干净利落的方法可以将所有访问HTTP://版本的站点的尝试重定向到它的HTTPS://等效项?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-09-30 10:12:44

我认为最干净的方式是所描述的here on IIS-aid.com。它只适用于web.config,所以如果你改变了服务器,你不必记住你使用403.4自定义错误页面或其他特殊权限所经历的所有步骤,它就能正常工作。

代码语言:javascript
复制
<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>
票数 178
EN

Stack Overflow用户

发布于 2016-07-14 16:31:31

我发现的最简单、最干净的解决方案是

  1. In SSL Settings -> require
  2. In Error Pages -> On 403.4 Error ->重定向至HTTPS站点
  3. In error Pages ->编辑功能设置...->为本地请求设置详细错误,并为远程请求

设置自定义错误页

好处是它不需要额外的代码行。缺点是它会将你重定向到一个绝对的url。

票数 14
EN

Stack Overflow用户

发布于 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很容易遗漏一些东西。

  • 首先,您需要将其安装为web服务器角色功能。
  • 其次,在IIS7中使用虚拟目录并没有像预期的那样工作,我没有尝试调试它。取而代之的是,我把这个文件放在站点的根文件夹中,并在403.4错误页面中使用url '/SSLRedirect.asp‘来引用它。最后,最棘手的部分,you 不能为SSLRedirect.asp强制使用SSL。否则你会得到一个403.4的错误。为此,您可以在IIS7的“内容视图”中选择文件,并切换到“功能视图”,以便您可以编辑单个文件的SSL设置,并禁用“要求SSL”复选框。

IIS管理器应在标题中显示文件名。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档