部署https(ssl)後設置301跳轉將http跳轉到https

發佈時間:2017-03-10

注意,以下教程針對我司虛擬主機或者亞數的雲主機香港IP部署SSL後的301跳轉(非亞數機房需要注意規則中行替換),把規則中域名替換成自己的域名。

wordpress程序請參考:https://www.west.cn/faq/list.asp?unid=2068 

根據自己使用環境點擊查看對應規則:


1、雲主機(apache)

2、虛擬主機linux系統

3、雲主機(nginx)

4、彈性雲windows系統(iis7)

5、虛擬主機windows系統

6、彈性雲windows系統(iis6)


1、雲主機apache環境

【直接在apache上部署的SSL】在對應站點根目錄下新建一個文件命名為.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>


雲主機apache環境(香港亞洲數據中心機房):

<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>


2、虛擬主機linux系統

可以通過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>


3、雲主機Nginx環境

編輯nginx站點配置文件(如果是wdcp面板,登錄wdcp管理面板中:站點列表-文管-虛擬主機站點文件nginx-對應站點配置文件),添加以下規則。(香港亞洲數據中心機房點擊查看規則)

server
{
listen 80;
server_name abc.com;
rewrite ^(.*) https://www.abc.com$1 permanent;           # 這段就是需要添加的,abc.com對應修改為您自已的域名   
}

雲主機Nginx環境(香港亞洲數據中心機房):

server
{
listen 80;
server_name abc.com;   
}

#亞數機房CDN部署的SSL在自身網站server配置節中添加下面代碼
if ( $http_from_https != 'on' ){
     rewrite ^(.*) https://www.abc.com$1 permanent;           # abc.com對應修改為您自已的域名
 }


4、雲主機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="{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系統 IIS7環境(香港亞洲數據中心機房和管理助手部署的服務器)

注意更改為自己的域名

<?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>


5、虛擬主機windows系統

可以通過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>


6、雲主機Windows系統 IIS6環境

參考http://www.west.cn/faq/list.asp?unid=650 配置一個Rewrite,編輯該Rewrite的規則文件httpd.conf 添加以下規則。香港亞洲數據中心機房點擊查看規則

RewriteEngine On
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對應修改為您自已的域名


雲主機Windows系統 IIS6環境(香港亞洲數據中心機房)

RewriteEngine On
RewriteCond %{HTTP:From-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域名,仍在原來站點設置跳轉規則。


java虛擬主機部署SSL後301跳轉參考:https://www.west.cn/faq/list.asp?unid=1968


請根據操作系統、站點部署數量選擇以下相應參考文檔,文檔僅供參考,如果對技術不熟悉,建議提交工單,由我司工程師幫您配置(會有費用產生)。

以上內容來源於網絡,僅供參考。

A、windows2008+iis7環境SSL部署https單/多站點

B、linux系統SSL部署https單/多站點

C、windows2003系統SSL單站點部署https

D、win2012+iis8 部署https證書(支持多站點)

E、雲建站部署SSL證書(https)

F、虛擬主機部署ssl證書(https)流程