为 Emlog 5.x 添加 https 支持

  • 为 Emlog 5.x 添加 https 支持已关闭评论
  • 84 views
  • A+
所属分类:Emlog

闲来无事逛博客,发现这篇文章不错,收藏下。

https 支持已集成到 Emlog 6.0,以下内容仅适用于 Emlog 5.x 用户。

在进行修改之前,请先确定服务器已正确配置 https。并且备份所有文件,防止遇到兼容性问题。

 

1. /include/lib/option.php

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

  1. /**
  2. * 添加文章、页面
  3. *
  4. * @param array $logData
  5. * @return int
  6. */
  7. function addlog($logData) {
  8. $kItem = array();
  9. $dItem = array();
  10. foreach ($logData as $key => $data) {
  11. $kItem[] = $key;
  12. $dItem[] = $data;
  13. }
  14. $field = implode(',', $kItem);
  15. $values = "'" . implode("','"$dItem) . "'";
  16. $this->db->query("INSERT INTO " . DB_PREFIX . "blog ($field) VALUES ($values)");
  17. $logid = $this->db->insert_id();
  18. return $logid;
  19. }

 

2. /include/lib/function.base.php

请将以下内容粘贴到文件的末尾

  1. /**
  2.  * 获取当前访问的 base url
  3.  */
  4. function realUrl() {
  5.     static $real_url = NULL;
  6.     if ($real_url !== NULL) {
  7.         return $real_url;
  8.     }
  9.     $emlog_path = EMLOG_ROOT . DIRECTORY_SEPARATOR;
  10.     $script_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
  11.     $script_path = str_replace('\\', '/', $script_path);
  12.     $path_element = explode('/', $script_path);
  13.     $this_match = '';
  14.     $best_match = '';
  15.     $current_deep = 0;
  16.     $max_deep = count($path_element);
  17.     while($current_deep < $max_deep) {
  18.         $this_match = $this_match . $path_element[$current_deep] . DIRECTORY_SEPARATOR;
  19.         if (substr($emlog_pathstrlen($this_match) * (-1)) === $this_match) {
  20.             $best_match = $this_match;
  21.         }
  22.         $current_deep++;
  23.     }
  24.     $best_match = str_replace(DIRECTORY_SEPARATOR, '/', $best_match);
  25.     $real_url  = $_SERVER['HTTPS'] === 'on'   'https://' : 'http://';
  26.     $real_url .= $_SERVER["SERVER_NAME"];
  27.     $real_url .= in_array($_SERVER['SERVER_PORT'], array(80, 443))   '' : ':' . $_SERVER['SERVER_PORT'];
  28.     $real_url .= $best_match;
  29.     return $real_url;
  30. }

 

3. /init.php

请用以下代码覆盖同名的 define (在 Emlog 5.3.1 下是第 39 行)

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

如果你使用的是 Emlog 5.3.1,并且没有对源代码做过修改,也可以下载附件里的文件直接覆盖同名文件.

本文来源于 vB·流水账

 

历史上的今天:

唯心寒辞