部署https(ssl)後設置301跳轉將http跳轉到https
發佈時間:2017-03-10
注意,以下教程針對我司虛擬主機或者亞數的雲主機香港IP部署SSL後的301跳轉(非亞數機房需要注意規則中行替換),把規則中域名替換成自己的域名。
wordpress程序請參考:https://www.west.cn/faq/list.asp?unid=2068
根據自己使用環境點擊查看對應規則:
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單/多站點
D、win2012+iis8 部署https證書(支持多站點)
