IIS7以上版本
1. 安装rewrite组件
2. 找到网站根目录web.config文件,替换一下内容(如果没有此文件可以创建一个);
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
3.重启IIS测试访问。
APache 版本
如果需要整站跳转,则在网站的配置文件的
RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
如果对某个目录做https强制跳转,则复制以下代码:
RewriteEngine on RewriteBase /yourfolder RewriteCond %{SERVER_PORT} !^443$ #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R] RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Nginx版本
在配置80端口的文件里面,写入以下内容即可。
server { listen 80; server_name localhost; rewrite ^(.*)$ https://$host$1 permanent; location / { root html; index index.html index.htm; }
单独页面通用代码段:以下方法较适合指定某一个子页单独https
在需要强制为https的页面上加入以下代码进行处理http–>https
<script language="JavaScript" type="text/JavaScript"> function redirect() { var loc = location.href.split(':'); if(loc[0]=='http') { location.href='https:'+loc[1]; } } onload=redirect </script>
在需要强制为http的页面上加入以下代码进行处理
https–>http
<script language="JavaScript" type="text/JavaScript"> function redirect() { var loc = location.href.split(':'); if(loc[0]=='https') { location.href='http:'+loc[1]; } } onload=redirect </script>
PHP页面跳转:添加在网站php页面内
if ($_SERVER["HTTPS"] <> "on") { $xredir="https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; header("Location: ".$xredir); } 复制