周文文个人信息网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz

最新的3.4DZ怎么实现全站HTTPS?Discuz!X3.2论坛实现全站HTTPS终极方法教程

[复制链接]
发表于 2019-12-16 14:59:18 来自手机 | 显示全部楼层 |阅读模式
查找修改文件discuz_application.php
& s& R# z/ G$ y+ ?( V* w! m' @找到 source/class/discuz/discuz_application.php (约第187行处)/ ^3 [) Q0 V- z" x4 I2 z7 o
$_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
3 ^  @8 D- G; \( I2 D4 k* |% i8 p9 r
复制代码3 Y/ J# G( x" y# H( a7 p6 a
修改为% H; q- V9 b2 v# ~9 S
$_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
7 ?8 F* j4 o* T# q# E
0 w' o# r% J! K复制代码# E! L! G. p( v1 {1 s% R( Q! c6 g
查找修改文件avatar.php0 T7 w9 ^. C! s) r3 B& g; k0 H
找到 uc_server/avatar.php (约第13行处). ^* n! G  v, I: f( K
define('UC_API', strtolower(($_SERVER['HTT6 G! `6 n8 K  J# W
PS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));6 \* A5 K! T" x  i" S0 E  b% p

$ [" s6 z! S; O1 G+ m9 u复制代码/ H( O; H$ _! w; r1 ^% B
修改为4 B8 m/ l7 e; J, n& F! B+ `( S
define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));0 C' f4 v% G7 s& n3 J

& S; }- g6 W; ?' N( V5 `3 t复制代码
/ W5 G% g  N1 A0 |查找修改文件admin.php
. U, B  j+ T& _% ?6 c找到 uc_server/admin.php (约第13行处)) g# j4 Q  _0 m
define('UC_API', strtolower((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strr
; Q. R, {* n8 ^5 x" j( r& f" Ppos($_SERVER['PHP_SELF'], '/'))));8 z' f4 [3 K7 Y5 f6 n7 v7 V

7 f* |. T; ?  ^- a" U; f1 U复制代码
& `9 {* k6 M) c: x6 ^: C修改为; g' y+ K7 {' X8 [
define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));" d: n2 H7 C! _2 D7 ]* E8 X
% j% m8 T- n6 v. s5 J
复制代码* l# n7 E1 \8 M7 L5 O0 h1 W& e
修改后台设置
: K9 n4 \3 O7 E后台 >全局 > 站点 URL,改为HTTPS7 N8 |+ D& n' a" V# [
后台 > 站长 > UCenter 设置 > UCenter 访问地址,改为HTTPS! {/ O, o5 s% N1 {# q
UCenter 后台 > 应用管理 > 应用的主 URL,改为HTTPS
8 @! L9 O3 k7 y( v* Z. E做到这一步若还有问题,逐步排查模板、数据库等地方 & [  R% f' Z3 B& b; y- w2 F

! w8 V' u6 F+ o, ]! w! n4 P6 D9 @

$ K7 [$ S7 A; f+ X2 S/ G" q1. 若“风格管理”中将“界面基础图片目录 {IMGDIR}”和“扩展图片目录 {STYLEIMGDIR}” 地址设置为 https 开头的绝对链接,需要修复一处BUG,否则会导致这部分风格图片无法显示。: n6 c( S2 _2 [/ U. i
打开 source/function/cache/cache_styles.php ,查找以下三项:
+ a* ]* x4 N  A( H$cssdata = !preg_match('/^http:\/\//i', $data['styleimgdir'])
: ]% ~# q& P5 g( i% f$cssdata = !preg_match('/^http:\/\//i', $data['imgdir'])
; Q1 j  X$ t) _+ i. V3 |# K$cssdata = !preg_match('/^http:\/\//i', $data['staticurl'])
; h: y$ Z( g0 u1 O# P. G% i% f1 l3 l1 O
复制代码
- V2 j; X8 t7 h5 @" ^! O0 s% \将其中的 /^http:\/\//i 替换为 /^http/i ,保存覆盖。
' B) k8 {( x; a9 J: L4 p: ?9 R注意:修改后,若将来要使用相对链接,需要确保目录不以 http 开头。
+ p% _3 O' z3 x5 i9 V; q; n/ q2. 解决 DiscuzTips 造成的不安全资源提示。
# n$ A  q$ O* J- r( R. P打开 source/plugin/manyou/Service/DiscuzTips.php ,在 echo $jsCode; 前加 // 将其注释掉。
" T, N3 M( ~* c- c3、http:// 跳转至 https://6 s- ]% E; |& t1 p( N* f( r0 }
打开 source/class/class_core.php 文件,在1 H( ~1 N6 y  A+ T
set_exception_handler(array('core', 'handleException'));
. k' X9 U, \2 R8 e6 o0 l7 V
8 J& s0 Q2 [: S. {/ I" I复制代码
* Y$ V0 b" s( T* X! B8 m后面加入:; v8 R: I! u$ x2 O6 X$ T2 F
if($_SERVER['SERVER_PORT'] != '443' && $_SERVER['PHP_SELF'] != '/api/uc.php') {
# j* P2 x+ |) @7 i* f, [if(!preg_match('/(Zidingyi|Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i', $_SERVER['HTTP_USER_AGENT'])) {
, \8 q9 m' ^8 y; P# Rheader('HTTP/1.1 301 Move
) n0 W4 [6 h" q( Y7 Wd Permanently');: r6 c: ~  l. H7 p2 K9 v
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
: t: L  v+ y9 d9 _: q0 U1 N0 N9 ?exit;
9 H1 W' p+ v- d6 z- A' a5 J$ y} elseif(preg_match('/(Baidu|Google)/i', $_SERVER['HTTP_USER_AGENT'])) {, j: a6 |8 o$ A% h" h+ Q; i4 a2 t
header('HTTP/1.1 403 Forbidden');' I- B/ ?) c$ w0 W! n, [
exit;) V- k- H5 F, e
}0 F5 X6 l3 ~) n  ^1 a
}
0 a: ]& x/ p$ U" q3 w9 X: Z& Q* y/ X7 y" m5 \( x
复制代码
0 \: @3 [. e+ b4 _- Q说明:当访问端口不为443(即https)时,如果不是搜索引擎则跳转到https页面,否则如果是百度或Google蜘蛛(这两个搜索引擎已支持收录https)则返回403禁止访问,避免重复收录 http 和 https 或优先收录了 http ,其它搜索引擎未定义,正常返回 http 页面(其它搜索引擎可能不支持收录 https ,因此开放 http 给他们)。8 m; M: i7 w  K, V" p
以上代码中“Zidingyi”可以任意修改,管理员使用以下UA可以不跳转到https,便于对http版进行调测:




上一篇:DISCUZ开启https后ucenter通信失败解决方法
下一篇:神人佛,周文文网站,介绍。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|陕ICP备19002477号|手机版|周文文个人信息网 ( 陕ICP备19002477号 )

GMT+8, 2020-1-23 19:42 , Processed in 0.086596 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表