«

EMLOG实现全站301重定向的方法

时间:2019-9-5 11:25     作者:博客志     分类: emlog教程


随着HTTPS加密传输的普及,很多EMLOG站长都纷纷开始部署SSL,博客志此前也分享了一些EMLOG实现HTTPS的方法,现在博客志就EMLOG实现全站301重定向的方法再进行一次普及和分享。

一、PHP一句话实现EMLOG全站301重定向

1、打开模板文件header.php,将下面的代码添加到合适的位置即可

<?php
//方法一 https状态
if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off'){
    Header("HTTP/1.1 301 Moved Permanently");
    header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
}
?>

<?php
//方法二 判断端口
if($_SERVER['SERVER_PORT']=="80"){
    Header("HTTP/1.1 301 Moved Permanently");
    header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
}
?>

二、利用.htaccess文件实现EMLOG全站301重定向

1、下载.htaccess文件,根据需要添加下面的协议

方法一、单域名跳转
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://你的域名/$1 [R,L]

方法二、整站跳转
RewriteEngine on 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]

三、原理解析

第一种方法,通过PHP一句代码实现EMLOG网站HTTP跳转HTTPS到全站301重定向目的,操作更加简单,不受服务器环境限制

第二种方法,利用.htaccess文件实现HTTP跳转HTTPS达到全站301重定向目的,适合Linux系统,但改错一个代码都会导致网站出错

三、注意事项

1、本教程的两个方案,博客志更加推荐使用第一种方法,第二种方法适合对于rewrite规则熟悉的老手