关于xml:IIS7:HTTP-> HTTPS Cleanly

关于xml:IIS7:HTTP-> HTTPS Cleanly

IIS7: HTTP->HTTPS Cleanly

是否有一种干净的方法可以将所有尝试转到站点的HTTP://版本重定向到其HTTPS://等效版本?


我认为最干净的方法是IIS-aid.com上的此处所述。它仅是web.config,因此,如果您更改服务器,则不必记住使用403.4自定义错误页面或其他特殊权限执行的所有步骤,它就可以正常工作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
            <conditions>
             
            </conditions>
           
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

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

  • 在SSL设置中->需要SSL

  • 在错误页面->关于403.4错误->重定向到HTTPS站点

  • 在错误页面->编辑功能设置...->为本地请求设置详细错误,为远程请求设置自定义错误页面

  • 好处是它不需要额外的代码行。
    缺点是它将您重定向到绝对URL。


    一种干净的方法仅更改http-> https中的URL方案,而使其他所有内容都等效。它应该在服务器端,这样就不会出现浏览器问题。

    JPPinto.com有关于如何完成此操作的分步说明,除了它们使用javascript(HttpRedirect.htm)而不是服务器端重定向。由于某些原因,如果您启用了"显示友好的HTTP错误消息"(默认情况下处于启用状态),则我无法让IE运行javascript。该脚本的另一件事是,即使在FF或Chrome中,重定向到路径也无法正常工作。该脚本始终重定向到root。 (也许我错过了一些东西,因为它应该重定向到path。)

    由于这些原因,我将ASP页面用于重定向。缺点当然是,这要求在服务器上启用经典ASP。

    OpsanBlog具有ASP脚本和与IIS6配合使用的说明。

    我在IIS7上使用此方法遇到了一些问题。用户界面主要是问题,因为IIS7确实很容易遗漏某些东西。

    • 首先,您需要将ASP安装为
      Web服务器角色功能。
    • 其次,没有使用虚拟目录
      在IIS7中按预期工作,但我没有
      尝试调试此。相反,我将文件放在站点的根文件夹中并使用
      网址中的网址" /SSLRedirect.asp"
      403.4错误页面以引用它。
    • 最后,最棘手的部分是,您不得对SSLRedirect.asp强制实施SSL。否则,您将收到403.4错误。为此,请在IIS7"内容视图"中选择文件,然后切换到"功能视图",以便您可以编辑单个文件的SSL设置并禁用"要求SSL"复选框。

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


    我使用经典的ASP(内部网),并且在需要登录的页面上,登录包含文件会进行重定向:

    1
    2
    3
    if Request.ServerVariables("SERVER_PORT_SECURE") <>"1" or Request.ServerVariables("HTTPS") <>"on" then
        Response.Redirect"https://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
    end if

    当然,这不包括GET或POST数据。因此,实际上,这是对您的安全页面的干净重定向。


    Global.asax

    1
    2
    3
    4
    5
    protected void Application_BeginRequest()
    {
    if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
    Response.Redirect(Context.Request.Url.ToString().Replace("http:","https:"));
    }

    我认为"干净"意味着要进行300次重定向。在此处配置许多服务器和语言。


    推荐阅读

      linux服务器常用命令?

      linux服务器常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,设备,功能,

      linux使用命令的方法?

      linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,

      linux服务器保存命令?

      linux服务器保存命令?,时间,状态,档案,电脑,命令,信息,位置,编辑,文件,模式,L

      linux服务器扫盘命令?

      linux服务器扫盘命令?,地址,工作,命令,目录,数据,单位,名称,系统,管理,信息,L

      linux命令切换服务器?

      linux命令切换服务器?,地址,名称,系统,环境,实时,命令,服务器,脚本,路径,版

      linux服务器搭建命令?

      linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,l

      服务器重启命令linux?

      服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,

      linux常用重定向命令?

      linux常用重定向命令?,标准,信息,设备,系统,文件,命令,内容,符号,终端,脚本,l

      linux服务器删除命令?

      linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,l

      linux命令忽略错误?

      linux命令忽略错误?,系统,地址,工作,信息,设备,命令,设计,灵活,观察,标准,lin

      linux服务器负荷命令?

      linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,l

      linux常见服务器命令?

      linux常见服务器命令?,信息,工作,标准,地址,设备,系统,情况,时间,状态,命令,

      linux服务器基础命令?

      linux服务器基础命令?,设备,标准,工作,地址,服务,系统,信息,情况,图片,基础,

      服务器linux命令大全?

      服务器linux命令大全?,标准,工作,设备,系统,服务,信息,时间,命令,服务器,级

      linux重定向命令用法?

      linux重定向命令用法?,标准,设备,系统,人员,信息,文件,命令,终端,内容,符号,L

      重启linux服务器命令?

      重启linux服务器命令?,标准,设备,工作,命令,网络,系统,提示,主机,服务器,接

      linux重定向命令输入?

      linux重定向命令输入?,标准,设备,文件,命令,位置,信息,系统,人员,基础知识,

      服务器关机命令linux?

      服务器关机命令linux?,系统,等级,工作,基础,命令,网络,体系,标准,实战,灵活,l

      linux服务器快捷命令?

      linux服务器快捷命令?,工作,标准,设备,第一,首页,名称,系统,环境,命令,终端,