以下是www.reapst.com.cn當前網站使用的從http轉到https的代碼
使用環境介紹:用的是云主機(windows2008),為了優化與權重的考慮,采用了301轉向(也可以不使用301轉向,直接放在根目錄就可以使用)
在根目錄放一個
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" />
<!-- <add input="{HTTPS}" pattern="^on$" negate="true" /> -->
</conditions>
<action type="Redirect" url="
https://www.www.reapst.com.cn/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
才下是百度到的資料
linux操作系統 apache環境
云服務器:【直接在apache上部署的SSL】在對應站點根目錄下新建(通過ftp或登錄wdcp管理面板中:站點列表-文管-進入public_html-創建文件)一個文件命名為.htaccess。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:From-Https} !^on$ [NC]
#RewriteCond %{HTTPS} !^on$ [NC] # 非亞數機房用這一行替換上一行規則
RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
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]
RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
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對應修改為您自已的域名
}
Windows系統 II7環境
云服務器:【直接在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" />
<!-- <add input="{HTTPS}" pattern="^on$" negate="true" /> --> # 非亞數機房用這一行替換上一行規則
</conditions>
<action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com對應修改為您自已的域名
</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" /> # www.abc.com對應修改為您自已的域名
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Windows系統 II6環境
參考http://www.west.cn/faq/list.asp?unid=650 配置一個Rewrite,編輯該Rewrite的規則文件httpd.conf 添加以下規則。
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域名,仍在原來站點設置跳轉規則。