为emlog 5.x添加https支持-站长杂谈下载

为emlog 5.x添加https支持

开通本站Svip会员,全站资源免费下
https 支持已集成到Emlog 6.0,以下内容仅适用于Emlog 5.x用户。
# i9 U) |0 B" B, n! m        在进行修改之前,请先确定服务器已正确配置https。并且备份所有文件,防止遇到兼容性问题。4 Z/ r! s; y0 W! d

  w. d4 y0 n: X. i1 l; F  E. o' L        1. /include/lib/option.php! h5 W. F, P! ~* J: d% g; S' D
        请将以下内容粘贴到 get function 的 default 判断分支之前 (在Emlog 5.3.1下是第43行)
  1. case 'blogurl':
    8 ?4 t; w. V4 W
  2.     return realUrl();! j( x7 e, I! g4 X- f' w$ M4 C
  3.     break;+ z# Z; _4 U& |3 j: T
复制代码
        2. /include/lib/function.base.php
) R  s  p) C; d: U  f        请将以下内容粘贴到文件的末尾
  1. /**
    7 Q, L! W* f! y8 w$ i/ l' l% i
  2. * 获取当前访问的base url3 a2 v2 S" B! ~, E2 \& d  w" ^8 i
  3. */2 g) U/ A, m' T+ [) R
  4. function realUrl() {0 p: D8 l% J- d9 D! p) |
  5.     $emlog_path = EMLOG_ROOT . DIRECTORY_SEPARATOR;
    8 F# m+ o9 L, I( V% `: i
  6.     $script_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
    4 o5 @& C# U% k. V
  7.     $script_path = str_replace('\\', '/', $script_path);
    / ^. u! |0 a  u4 Q3 |6 v) S4 D
  8.     $path_element = explode('/', $script_path);6 V4 l' ^& E, K2 o) ?
  9.    
    . r7 m4 F1 s9 c8 \6 Q9 a
  10.     $this_match = '';; C# c/ V. B/ O& e' {4 a7 Z6 C% O
  11.     $best_match = '';# \6 i* M+ V3 g3 ?4 m9 _2 _
  12.    
    + S; j# U6 h; y, I8 ^
  13.     $current_deep = 0;
    & d2 @- _) w* T+ y
  14.     $max_deep = count($path_element);
    ( e6 B3 ^. j8 m% P
  15.    ! ]$ O, a  B( J3 o; E3 F7 H$ C
  16.     while($current_deep < $max_deep) {
    " h8 P- C' a! t# d$ S
  17.         $this_match = $this_match . $path_element[$current_deep] . DIRECTORY_SEPARATOR;: o. y: {. z8 L6 r2 V1 ?
  18.         
    6 g7 _* @- s2 ?* b& K/ y
  19.         if (substr($emlog_path, strlen($this_match) * (-1)) === $this_match) {5 j+ K1 `5 R) q" \3 q+ V# j) _! c
  20.             $best_match = $this_match;
    " A6 v1 C  w; w1 ]6 ^/ _- V
  21.         }
    - D8 E4 h, f0 z
  22.         
    , o" ?0 S' K) f/ F' @
  23.         $current_deep++;3 u5 q4 W6 X+ F# T
  24.     }
    6 J6 _; E: a3 M3 R6 t
  25.    
    / ?" Q  E& U) ~0 ?* L: v
  26.     $best_match = str_replace(DIRECTORY_SEPARATOR, '/', $best_match);
    5 ^2 ^. k8 s5 P- K9 K
  27.     $real_url  = $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
    7 Z; u; w$ {3 x' n) Y
  28.     $real_url .= $_SERVER["SERVER_NAME"];) D4 x+ I( T+ R# `9 R
  29.     $real_url .= in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT'];5 O" M* B& Q6 v, @% Q
  30.     $real_url .= $best_match;& m( x- `5 V* i! K! S: u
  31.    
    ( z" N+ E# h+ v! z3 ?: Q
  32.     return $real_url;
    7 m' c) h1 C4 T$ \
  33. }
复制代码

9 \8 {8 J% E5 y# n. O9 c' D        3. /init.php
) b( X$ ~: s# B2 Z- m7 E- i        请用以下代码覆盖同名的define (在Emlog 5.3.1下是第39行)& B- Q6 X4 O% g* z
  • define('DYNAMIC_BLOGURL', Option::get("blogurl"));
    3 [  t$ o6 j: D4 \: a
9 v$ R# a5 }' |: j+ v! c
" K4 p" G' G7 v+ O5 E

& f0 D1 R0 k3 D
7 ?! ?1 p1 B. q) ?

全部评论 0

您需要登录后才可以回帖 立即登录
登录
0
0
0
返回顶部