最新消息:由于垃圾评论泛滥,本站使用了自动删除评论mysql语句,评论请勿使用纯英文或数字

EMlog启用https访问的实现方法与教程(转)

技巧资料 骑猪看月亮 810浏览 3评论

      EMlog 是 “Every Memory Log” 的简称,意即:点滴记忆。它是一款基于PHP语言和MySQL数据库的开源、免费、功能强大的个人或多人联合撰写的博客系统(blog)。目前EMlog最新版本为6.0.0 Beta测试版,而正式版的最新版本为5.3.1,https 支持已集成到Emlog 6.0,但是现在EMlog用户主要还是使用的5.x版本,所以今天也就说说EMlog启用https访问的实现教程。而下面的内容仅适用于Emlog 5.x用户。这点请注意。
      在进行修改之前,请先确定服务器已正确配置https。并且备份所有文件,防止遇到兼容性
      1、 /include/lib/option.php

      请将以下内容粘贴到 get function 的 default 判断分支之前 (在Emlog 5.3.1下是第43行)

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

      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;
}

      3、/init.php
      请用以下代码覆盖同名的define (在Emlog 5.3.1下是第39行)

define('DYNAMIC_BLOGURL', Option::get("blogurl"));

      好了,大功告成,试试用https访问吧!

转载请注明:骑猪看月亮 » EMlog启用https访问的实现方法与教程(转)

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 我网站就是emlog的,也开启了https,则篇文章对我很有用
    知识共享网6个月前 (04-30)回复
  2. 不粗的,教程学习了
    技能制造大师8个月前 (02-25)回复
  3. 学到了1
    演员8个月前 (02-19)回复