现在位置:首页 » qibocms »

emlog部署SSL证书,轻松使用https访问...

心岛发布于2019年08月04日  分类: qibocms  浏览:432 人次  评论:1 

emlog很多人都在用,目前主要有两个版本,一个是5.3.1版本,一个是6.0版本,6.0版本由于官方集成了对https的支持,如果使用6.0的网友只需要在 /include/lib/function.base.php中将gravat图标调用方式由http修改为https即可(详情请见第2步最后的表述),因此本文主要说下5.3.1的相关设置,设置ssl加密证书依然很简单,如何解决SSL访问的时候出现的一些问题,主要是分为几步走。

一、下载emlog SSL访问插件

地址:http://tv1314.com/post-433.html   ,作者鬼少,搬运工地址:gs_ssl.zip

安装插件后,启用之。

微信截图_20190804120047.jpg

解决了这一部分,其实已经基本可以使用SSL访问了,但关系多众多模板的问题,这样还是不够的。

二、修改代码

修改代码前请先备份,这代码来自于其他网站,经过多个博客模板测试可行,版本仅限于5.3.1

1、 /include/lib/option.php
请将以下内容粘贴到 get function 的 default 判断分支之前 (在Emlog 5.3.1下是第43行)

case 'blogurl':
    return realUrl();
    break;


具体位置如下所示:

option_php文件修改.jpg

 

2、 /include/lib/function.base.php请将以下内容粘贴到文件的末尾


 

/**
 * 获取当前访问的base url
 */
function realUrl() {
    static $real_url = NULL;
    
    if ($real_url !== NULL) {
        return $real_url;
    }
 
    $emlog_path = EMLOG_ROOT . DIRECTORY_SEPARATOR;
    $script_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
    $script_path = str_replace('\\', '/', $script_path);
    $path_element = explode('/', $script_path);
    
    $this_match = '';
    $best_match = '';
    
    $current_deep = 0;
    $max_deep = count($path_element);
    
    while($current_deep < $max_deep) { $this_match = $this_match . $path_element[$current_deep] . DIRECTORY_SEPARATOR; if (substr($emlog_path, strlen($this_match) * (-1)) === $this_match) { $best_match = $this_match; } $current_deep++; } $best_match = str_replace(DIRECTORY_SEPARATOR, '/', $best_match); $real_url = $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://'; $real_url .= $_SERVER["SERVER_NAME"]; $real_url .= in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT']; $real_url .= $best_match; return $real_url; }


如下图所示:
function_base_php文件修改项.jpg
 
另外:如果使用过gravat图标的网友还需要对 其语句进行修改:
$avatar = "http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
修改为:
$avatar = "https://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
 
3、/init.php
请用以下代码覆盖同名的define (在Emlog 5.3.1下是第39行)
define('DYNAMIC_BLOGURL', Option::get("blogurl"));

如下图所示:

ini_php修改内容.jpg

4、在模板header.php末尾加入以下代码强制访问https

<script type="text/javascript">
var targetProtocol = "https:";
if (window.location.protocol != targetProtocol)
 window.location.href = targetProtocol +
  window.location.href.substring(window.location.protocol.length);
</script>

注意:使用本文所述教程的前提是网站所在空间已经完全部署好了ssl,否则只修改本页所述内容是无法成功访问的。

赞 (0次) 打赏
X
打赏方式:
  • 支付宝
  • 微信
  • QQ红包

打开支付宝扫一扫
上一篇: 齐博整站V7、V9访问网址设置为https的解决方法
下一篇:近期齐博网站维护所得经验梳理

本文由心岛原创或编辑,转载请保留链接【emlog部署SSL证书,轻松使用https访问网站】https://www.liangxin.name/?post=247

百度已收录!

目前有 1 条评论
avatar
心岛 2019-08-04 12:25回复
补充一点:以上是站点核心文件修改之处,修改后网站数据中原有的图片和链接,可以通过备份数据库后批量修改数据库中链接实现系统修改!