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

为emlog 5.x添加https支持

开通本站Svip会员,全站资源免费下
https 支持已集成到Emlog 6.0,以下内容仅适用于Emlog 5.x用户。0 W* q/ a1 `2 n
        在进行修改之前,请先确定服务器已正确配置https。并且备份所有文件,防止遇到兼容性问题。0 q  P$ Q9 ~/ S3 R& O/ J
! o- l- h. R) f
        1. /include/lib/option.php& Z9 R) F6 U( ?; @+ s+ X/ b. l
        请将以下内容粘贴到 get function 的 default 判断分支之前 (在Emlog 5.3.1下是第43行)
  1. case 'blogurl':; W+ V$ z4 K- x4 k: E0 d" V
  2.     return realUrl();
    , J( O6 g/ `" S/ l/ \1 R0 b' D: G
  3.     break;
    9 `% d0 Y. W- _/ Y4 E- y
复制代码
        2. /include/lib/function.base.php
) ~: Z) J$ @$ e8 P/ W        请将以下内容粘贴到文件的末尾
  1. /**+ Y2 U$ `8 I, r) [; H  c
  2. * 获取当前访问的base url$ {* |6 F( d$ M# x: v; \, V+ t0 C% x# W  i
  3. *// \0 a1 ^6 d. O1 U% ?6 E* l1 m) ^
  4. function realUrl() {
    : {3 b5 z5 g7 t; y
  5.     $emlog_path = EMLOG_ROOT . DIRECTORY_SEPARATOR;% G! d) g, N* _5 J- h) P: c
  6.     $script_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);6 h5 k% Q, o* R; ?$ r. g
  7.     $script_path = str_replace('\\', '/', $script_path);
      }0 d# R: C7 D- f5 d
  8.     $path_element = explode('/', $script_path);
    & H! O/ Y/ w% Z+ Y
  9.    
    ! W) }; k6 b9 ?( }) N
  10.     $this_match = '';
    , y& n; v7 N2 H1 J% U7 n
  11.     $best_match = '';
    * i, k1 ?9 a; Y; W$ V. @6 \' l
  12.    
    8 |3 @* C7 {- B2 ^' A* _
  13.     $current_deep = 0;
    0 |2 I1 R) i- R* ~8 v1 _$ U
  14.     $max_deep = count($path_element);
    & Y# l/ v  I2 k( I5 b, G+ O
  15.    + F8 C4 e* `7 H5 u! D
  16.     while($current_deep < $max_deep) {
    0 q2 s! o2 S/ m/ f+ A
  17.         $this_match = $this_match . $path_element[$current_deep] . DIRECTORY_SEPARATOR;
    0 b' P! {% G" |8 o) F! i
  18.         4 j' d- r5 y* [0 {# w! S7 l3 p
  19.         if (substr($emlog_path, strlen($this_match) * (-1)) === $this_match) {' k9 i2 v0 C9 l$ Z7 L8 H
  20.             $best_match = $this_match;
    * B4 q  j3 q6 |
  21.         }. r- w$ M# y* {9 \. j
  22.         
    4 ?- ~' ]+ }+ e3 u+ \' \+ \
  23.         $current_deep++;! s" [& V( s/ V% B' e# _
  24.     }
    2 K8 f% |. F# e% O8 R" G( g5 L) f
  25.    4 t4 g5 N6 r6 P9 D# Z- A% p2 v. [
  26.     $best_match = str_replace(DIRECTORY_SEPARATOR, '/', $best_match);) p& K4 J; s; G! z
  27.     $real_url  = $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';  Z4 h' e  L& {# z0 s8 _5 A$ ?
  28.     $real_url .= $_SERVER["SERVER_NAME"];
    3 r# @* W2 U1 ?2 @9 j# C$ R4 r6 r6 F
  29.     $real_url .= in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT'];/ Y$ M: Z# Q9 Q2 T- ?
  30.     $real_url .= $best_match;! {( `8 f# l. M$ k9 G7 g8 @
  31.    
    , ]( I# p+ D( {5 K- R$ {
  32.     return $real_url;$ m/ z1 j4 q' U& B+ D
  33. }
复制代码

1 M" m+ j- C8 d" ^/ M. B        3. /init.php0 E( S/ j- r6 v  g) ?. G
        请用以下代码覆盖同名的define (在Emlog 5.3.1下是第39行)# Q: y2 F$ {1 _3 [' ^
  • define('DYNAMIC_BLOGURL', Option::get("blogurl"));! m2 |5 E7 H5 W# g

' ]' P/ N# J+ ^1 j) E% j2 r" @2 x$ q- a8 ]

" Q+ l- ]* c. N2 m, `( l
  j: o# |& R# D/ R# p

全部评论 0

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