当前位置:首页 » 好文分享 » 详情

    部署https(ssl)后设置301跳转将http跳转到https

    注意,以下教程针对李明虚拟主机或者亚数的云主机香港IP部署SSL后的301跳转(非亚数机房需要注意规则中行替换),把规则中域名替换成自己的

    linux系统 apache环境

    云服务器:【直接在apache上部署的SSL】在对应站点根目录下新建(通过ftp或登录wdcp管理面板中:站点列表-文管-进入public_html-创建文件)一个文件命名为.htaccess。
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond  %{HTTPS} !^on$ [NC]                             
    RewriteCond %{HTTP_HOST} ^(www.)?abc.com$ [NC]                # 将abc.com和www.abc.com跳转到https://www.abc.com,防止apache子站继承上级目录.htaccess受影响
    RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
    </IfModule>

    亚洲数据中心机房:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]                                  
    RewriteCond %{HTTP_HOST} ^(www.)?abc.com$ [NC]                # 将abc.com和www.abc.com跳转到https://www.abc.com,防止apache子站继承上级目录.htaccess受影响
    RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
    </IfModule>

    虚拟主机:可以通过ftp或登录后进入到主机管理面板-文件管理,进入wwwroot,新建一个文件命名为.htaccess文件,保存即可。

    编辑.htaccess文件写入以下规则:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]
    RewriteCond %{HTTP_HOST} ^(www.)?abc.com$ [NC]                # 将abc.com和www.abc.com跳转到https://www.abc.com,防止apache子站继承上级目录.htaccess受影响
    RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
    </IfModule>

    Nginx环境

    编辑nginx站点配置文件(登录wdcp管理面板中:站点列表-文管-虚拟主机站点文件nginx-对应站点配置文件),添加以下规则
    server
    {
    listen 80;
    server_name abc.com;
    rewrite ^(.*) https://www.abc.com$1 permanent;           #  abc.com对应修改为您自已的域名   
    }

    亚数机房CDN部署的SSL添加下面代码
    if ( $http_from_https != 'on' ){
         rewrite ^(.*) https://www.abc.com$1 permanent;           #  abc.com对应修改为您自已的域名
     }

    Windows系统 IIS7环境

    云服务器:【直接在IIS上部署的SSL】在对应站点根目录下新建(通过ftp或登录后直接进入到D:\wwwroot\站点ftp命名目录\wwwroot创建)一个文件命名为web.config并编辑添加以下规则:

    亚洲数据中心机房

    注意更改为自己的域名
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
            <rewrite>
                <rules>
                   <rule name="301" stopProcessing="true">
                        <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">                       
                             <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />  
                      </conditions>
                        <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" />
                   </rule>
                </rules>
            </rewrite>
        </system.webServer> 
    </configuration>

    非亚数机房复制以下规则,注意替换为自己的域名
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
            <rewrite>
                <rules>
                   <rule name="301" stopProcessing="true">
                        <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">                       
                           <add input="{HTTPS}" pattern="^on$" negate="true" />
                        </conditions>
                        <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" />
                   </rule>
                </rules>
            </rewrite>
        </system.webServer> 
    </configuration>

    虚拟主机:可以通过ftp或登录后进入到主机管理面板-文件管理,进入wwwroot,新建一个文件命名为web.config并编辑添加以下规则,注意替换为自己的域名。
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
            <rewrite>
                <rules>
                   <rule name="301" stopProcessing="true">
                        <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">
                            <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
                        </conditions>
                        <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" />
                   </rule>
                </rules>
            </rewrite>
        </system.webServer> 
    </configuration>

    Windows系统 IIS6环境
    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]
    #RewriteCond  %{HTTPS} !^on$ [NC]                         # 非亚数机房用这一行替换上一行规则                                  
    RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]       # www.abc.com对应修改为您自已的域名
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^(.*)$ https://www.abc.com$1 [R=301,L]        # www.abc.com对应修改为您自已的域名

    tomcat环境

    在web.xml最后一行</web-app>代码之前添加如下代码即可
    <security-constraint>
        <!-- Authorization setting for SSL -->
        <web-resource-collection >
            <web-resource-name >SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    注: 
    1、discuz使用301方式强制将http跳转到https后会导致后台uc通信失败。

    2、通过该方式设置跳转后,如无法正常跳转访问,请单独建立站点绑定https域名,仍在原来站点设置跳转规则。
    打赏
    X
    打赏方式:
    • 支付宝
    • 微信
    • QQ红包

    打开支付宝扫一扫
    日期:2019年08月21日 20:40:17 星期三   分类:好文分享   浏览(38898)
    本文地址:https://www.blogs.hk/post-4796.html   [百度已收录]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
    版权所有:《博客之家
    文章标题:《部署https(ssl)后设置301跳转将http跳转到https
    除非注明,文章均为 《博客之家》 原创
    转载请注明本文短网址:https://www.blogs.hk/post-4796.html  [生成短网址]

    留言咨询

    自动获取QQ

    昵称

    邮箱

    网址

        站点统计

        • 收录网址:3370 个
        • 发布文章:3008 条
        • 在线人数:1人
        • 总访问量:270560083次
        • 本站运行:12年5月3天
        Copyright © 2025 博客之家 版权所有  
        關於本站免責聲明sitemap新站登錄