- 帖子
- 1008
- 主题
- 761
- 精华
- 0
- 积分
- 1794
- 贡献
- 941
- 激情
- 7771
- 阅读权限
- 100
- 最后登录
- 2020-4-28
|
[开发经验技巧分享] 如何修改后台目录admin为任意目录名(版本V2.6.2)
Ecshop后台目录的修改方法在ecshop论坛上有网友公布了几个版本,但都存在修改不完全的地方,我们经过深入分析ecshop 2.6.2,总结修改ecshop2.6.2后台路径的完整无误版,需要修改的所有文件及代码如下,大家只要照着把下面的红字admin统一修改成新的目录名即可。:) u4 ^9 s* G8 A
( v1 R+ M+ Z3 a$ TV1:+ U& R8 M( w5 ^: _3 d. C0 y
http://www.50sz.cn/view-14-1.html
9 D4 n& A+ ^& ^; h6 G/ g
6 m% K4 I8 _8 B" j1 F2 ^* f: `1、quotation.php 62行6 |+ c% i3 }; E$ r% }' D% K7 i2 e' a
include_once(ROOT_PATH . 'admin/includes/lib_main.php');
8 d& O' p9 b( `( ^6 c d- _% E$ K% g2、admin/check_file_priv.php 37行' p$ v9 u S/ _$ R% [1 s: @# w6 A2 P
$dir[] = 'admin';+ N! h4 n+ [1 b. g, }
3、admin/database.php 19行, X: _6 I. r4 _
require_once(ROOT_PATH . 'admin/includes/cls_sql_dump.php');
% N* U) X- [8 C% {8 X# d4、admin/filecheck.php 51行! v1 s h4 P0 [( X( y
checkfiles('admin/', '\.php|\.htm|\.js|\.css|\xml');) m& m4 ~5 a, V/ ~
5、admin/get_password.php 107行2 E! V5 A6 N' ]& F, j
$reset_email = $ecs->url() . 'admin/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code;, R8 T5 l7 c, b4 A9 I' o0 @; A4 n
6、admin/goods.php 8
8 a, q; |1 M$ i+ S9 z- w/ K' T require_once(ROOT_PATH . '/admin/includes/lib_goods.php');6 F$ h9 t# b8 O1 L
7、admin/index.php 799
) R1 L. J4 O2 u* L require_once(ROOT_PATH . 'admin/includes/lib_goods.php');: T# d( L5 }: Q0 A3 `7 w+ b' {
8、admin/picture_batch.php 20
$ d9 v, |3 D ]4 {; [3 @ include_once(ROOT_PATH . '/admin/includes/lib_goods.php');; }- U* j3 E @6 ?* G. L
9、admin/includes/init.php- R! o5 q: `2 Z+ a4 b! R
30行 define('ROOT_PATH', str_replace('admin/includes/init.php', '', str_replace('\\', '/', __FILE__)));- Z2 ~4 H h2 v' B2 g3 T# |9 k* |1 S
84行 require(ROOT_PATH . 'admin/includes/lib_main.php');* F S: i' s/ d' x
85行 require(ROOT_PATH . 'admin/includes/cls_exchange.php');% k1 r5 o* D; z O; N7 V1 i
199行 $smarty->template_dir = ROOT_PATH . 'admin/templates';
" x" w- |+ p8 U7 w, h 299行 $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . 'admin';
2 I% }& ]; H7 _10、api/client/includes/lib_api.php: t0 o" E: g4 l, S
264行 require_once(ROOT_PATH.'admin/includes/lib_main.php');
3 |# c1 V* G9 W4 w0 m x 288行 require_once(ROOT_PATH.'admin/includes/lib_main.php');
' U' K# N& P& x$ F5 p! {* K 369行 require_once(ROOT_PATH . 'admin/includes/lib_main.php');
' F, l+ Z: q0 U- K$ | 370行 require_once(ROOT_PATH . 'admin/includes/cls_exchange.php');
9 _6 ?( D! N2 s4 _& t 452行 require_once(ROOT_PATH . 'admin/includes/lib_main.php');# y$ }; V4 |* @' Q6 y5 i. @
453行 require_once(ROOT_PATH . 'admin/includes/lib_goods.php');
% ^: q' J. h: N& q' j 1102行 require_once(ROOT_PATH . 'admin/includes/cls_exchange.php');
7 D a+ d" Y8 O5 w2 V+ S1 @% k 1127行 require_once(ROOT_PATH . 'admin/includes/lib_main.php');
. P1 N3 A$ Z! ^7 W 1164行 require_once(ROOT_PATH . 'admin/includes/cls_exchange.php');% L4 j" o- y$ `2 c) U8 z' n: ?
1183行 require_once(ROOT_PATH . 'admin/includes/lib_main.php');) o1 Y- E" n9 K! N( H8 |$ u
1267行 require_once(ROOT_PATH . 'admin/includes/lib_main.php');
; ]6 c! ]9 g* H- _ 1268行 require_once(ROOT_PATH . 'admin/includes/cls_exchange.php');
+ h+ w, f7 e# ^% a9 B$ [7 v! u. h11、data/config.php 23
8 U" a/ q3 D6 b% p4 X $admin_dir = "admin";+ V/ y4 L% B& V) M
12、includes/modules/convert/shopex46.php 895 ^6 f6 L1 j/ m% l% C9 i7 M
$this->tdocroot = str_replace('/admin', '', dirname(PHP_SELF));( O: Z% h, [* i# q% b
13、includes/lib_main.php 19209 j' f$ G& B M6 _" U; ?+ Z |
include_once(ROOT_PATH . 'admin/includes/lib_template.php');3 o# I- P/ T6 O: c. x
14、includes/modules/convert/shopex47.php 71& ]! g* |6 |- k) ^ S f
$this->tdocroot = str_replace('/admin', '', dirname(PHP_SELF));
: f e8 S; A, D3 @8 a1 L15、languages/en_us.php 30! {9 ?, _4 s# q7 @# R
$_LANG['usage1'] = '<a href="../admin">Login Control panel</a>,<span style="color:red;font-weight:bold;font-size:18px;">Backup</span>Database data';
2 g) ~0 p$ Q, d% W16、languages/zh_cn_utf-8.php 30; J) ~7 Y# a+ K6 z) i2 o
$_LANG['usage2'] = '<a href="../admin">登录后台</a>,<span style="color:red;font-weight:bold;font-size:18px;">备份</span>数据库资料;';
. U) ^; ]5 @2 y9 t, ^* N17、languages/zh_tw_utf-8.php 30
5 N9 m# b9 h$ Y5 K. v' f $_LANG['usage2'] = '<a href="../admin">登錄後台</a>,<span style="color:red;font-weight:bold;font-size:18px;">備份</span>數據庫資料;';, w* T/ Q) M( `# t# k2 m/ Z- f
18、languages/zh_cn_gbk.php 30! l4 n4 K% s- [
$_LANG['usage2'] = '<a href="../admin">登录后台</a>,<span style="color:red;font-weight:bold;font-size:18px;">备份</span>数据库资料;';* m; s: x# y2 U7 H; d
19、languages/zh_cn/common.php 27; l7 D7 j# ^/ q9 f& g6 V
$_LANG['shop_upgrade'] = "本店升级中,管理员从 <a href=\"admin/\">管理中心</a> 登录后,系统会自动完成升级";
: }8 n* e9 Z) J+ i6 J8 z20、languages/zh_tw/common.php 272 r, l2 r8 ^/ \$ O2 x+ x! u, r M
$_LANG['shop_upgrade'] = "本店升級中,管理員從 <a href=\"admin/\">管理中心</a> 登錄後,系統會自動完成升級";
5 X3 y: n) U" @* t21、includes/cls_ecshop.php" ~3 p. q3 L: v3 B
130行 $curr = strpos(PHP_SELF, 'admin/') !== false ?
4 Z2 ^2 T. L6 l# _# q, \( m 131行 preg_replace('/(.*)(admin)(\/?)(.)*/i', '\1', dirname(PHP_SELF)) :% j: }3 p9 }7 E) _
修改完以上代码之后,还要修改网站后台文件夹的名称,即把admin改成刚才修改了的新目录名称即可。
9 [/ E* r, J( B+ t通过以上修改,我们就可以把ecshop2.6.2后台目录改为自己想要的目录,从而大大小减被非法入侵的机率。; i2 M: o% X7 v; A4 M* n
特别说明:本文仅针对ECSHOP2.6.2 其它版本大同小异,我站将会另行公布。
7 y1 r4 t% v) N m特别提醒:修改之前请一定做好整站备份,不管您因为修改网站而造成任何损失,我们均不承担责任。% i- g9 l% A+ {) |% q" s% Z
9 n$ F8 @. a7 U1 o' Z8 E# c0 f. M6 i+ u+ F7 u$ z1 G
V2:
% n. F, [& Y4 M# {# w/ h# f. }4 V! Chttp://bbs.ecshop.com/thread-82319-1-1.html
' y" z x$ d2 X/ F2 O- Q8 x O
: i# f) a' ?! w1.修改data/config.php 第23行- p: x2 B/ X# A6 N
5 q0 S: S: ]! _/ u: e# _4 H& p/ m7 f! [. \. A
修改成+ V( g% R! w1 k+ v
: O2 P$ D( a% U$ H. v% Y$ ]
7 @1 G h% \8 f( C8 W2.修改admin/index.php 第799行
( {2 q4 U ^# M5 I4 u% O4 l, C- //货号
- require_once(ROOT_PATH . 'admin/includes/lib_goods.php');
复制代码 ' g8 l4 a3 k t% x! z
5 c; h( {/ X7 f3 i) h% d' l修改成
# u0 R! m) m; h" }" {- require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php');
复制代码 ) d* c! l- O0 E0 W: f% d+ a
' G% E; `* [7 ~; R3 c0 U3.修改admin/database.php 第19行
; e4 _; Q4 U4 k( W0 e
; c* Y. ?7 A8 b, u7 l9 `- require_once(ROOT_PATH . 'admin/includes/cls_sql_dump.php');
复制代码
w' }- A/ e O0 B% ?修改成
/ @1 w5 v# D" H4 O% |3 U+ F# l- require_once(ROOT_PATH . $admin_dir.'/includes/cls_sql_dump.php');
复制代码
X) I& `5 P- |6 i
- ^- }9 H$ w! }* {4.修改admin/get_password.php 第107行; A' A: O# ^; v" V
8 f( ]2 q8 q- }+ L
- $reset_email = $ecs->url() . 'admin/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code;
- 修改成
- $reset_email = $ecs->url() . $admin_dir.'/get_password.php?act=reset_pwd&uid='.$admin_id.'&code='.$code;
复制代码
2 P) P5 w/ ? M4 z7 c: ` y% j1 ^
5.修改admin/goods.php 第19行3 Y! z8 d- `* @: D7 Y) M
7 _: R! _' n" c6 N5 j
- require_once(ROOT_PATH . '/admin/includes/lib_goods.php');
- 修改成
- require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php');
复制代码
% |( r( y) ]# S g0 h; W F% D+ L3 m6 \5 z$ }
6.修改admin/check_file_priv.php 第37行/ O( r9 Z5 i; |) c' J$ ~
- $dir[] = 'admin';
- 修改成
- $dir[] = $admin_dir;
复制代码 " @6 [' S; l4 N2 i* Y
2 V- R8 y5 [, r7 ^6 n6 K4 Q# i" _' m
7.修改admin/includes/init.php
: X* Y! E$ _# |& s. s5 W9 n! z; } 第50行
) |" r7 x& x6 r6 i) T- if (file_exists(ROOT_PATH . 'data/config.php'))
- {
- include(ROOT_PATH . 'data/config.php');
- }
- else
- {
- include(ROOT_PATH . 'includes/config.php');
- }
- 修改成下面代码,并将代码移至“/* 取得当前ecshop所在的根目录 */”注释之前。
- if (file_exists('../data/config.php'))
- {
- include('../data/config.php');
- }
- else
- {
- include('../includes/config.php');
- }
复制代码 1 N/ _/ o; E" p x d+ _, d
第31行8 K1 J; f2 E2 E. }" R, x( g
: G" Q1 O/ `. @: O& k- define('ROOT_PATH', str_replace('admin/includes/init.php', '', str_replace('\\', '/', __FILE__)));
- 修改成
- define('ROOT_PATH', str_replace($admin_dir.'/includes/init.php', '', str_replace('\\', '/', __FILE__)));
复制代码
( A1 \9 O1 L+ L) l4 ?" K
, g: n; t" x5 o7 d" ` 第84行* U( @7 P5 \& G% Y6 w: n) {
- require(ROOT_PATH . 'admin/includes/lib_main.php');
- require(ROOT_PATH . 'admin/includes/cls_exchange.php');
- 修改为:
- require(ROOT_PATH . $admin_dir.'/includes/lib_main.php');
- require(ROOT_PATH . $admin_dir.'/includes/cls_exchange.php');
复制代码 3 e: Q8 O% V2 h: T
第199行4 M/ X6 _9 f) }4 p1 k, ^. q
- $smarty->template_dir = ROOT_PATH . 'admin/templates';
- 修改成
- $smarty->template_dir = ROOT_PATH . $admin_dir.'/templates';
复制代码 , k/ B- Z; S/ j8 j5 L
: v1 E1 c1 X* M: [, w/ G5 P6 t 第299行
4 A: B4 e) j# N( }8 K
, x- R8 S8 H4 {- $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . 'admin';
- 修改成
- $admin_path = preg_replace('/:\d+/', '', $ecs->url()) . $admin_dir;
复制代码
E2 D9 K" d0 r1 D8 J( B1 i( W: ~" M! T. x
; c) N! g" H4 r+ [
8.修改include/lib_main.php 第1922行( m3 k2 S) n$ s0 n+ t2 u
- include_once(ROOT_PATH . 'admin/includes/lib_template.php');
复制代码 % J3 O3 Z7 B5 n6 _
+ L L' f5 w* D: j( K; y. g: G修改成1 v% z/ c1 Y- |% ?! k% B; K' T) W+ T
5 T. X$ J! P' [% s2 b6 A- global $admin_dir;
- include_once(ROOT_PATH . $admin_dir.'/includes/lib_template.php');
复制代码
7 e: d' e; G8 d5 q) f* j. H5 ] C( Z4 C2 B% n a% G
9.修改include/cls_ecshop.php 第130行
. z2 d& e: ~+ L! `7 a
) S4 @% ?# Q6 ?- $curr = strpos(PHP_SELF, 'admin/') !== false ?
- preg_replace('/(.*)(admin)(\/?)(.)*/i', '\1', dirname(PHP_SELF)) :
- dirname(PHP_SELF);
复制代码 , V$ j, \; A* |: H! C# V$ v
. D: D9 J0 ~) W) D2 A5 L- K4 o; u
修改成; W: S" Z$ H- x' T3 X) k
# m( W1 P9 f. t. x! R g; `- global $admin_dir;
- $curr = strpos(PHP_SELF, $admin_dir.'/') !== false ?
- preg_replace('/(.*)('.$admin_dir.')(\/?)(.)*/i', '\1', dirname(PHP_SELF)) :
- dirname(PHP_SELF);
复制代码
+ Q0 z, A# C/ g8 b5 V$ J# _2 S- H' Z2 x
10.如果担心$admin_dir变量注入安全问题可以在data/config.php文件中define('EC_CHARSET','utf-8');后增加 第27行后
) B. z! n- d- L2 ]
0 [$ x' {6 ]9 s- define('ADMIN_DIR','新目录名');
复制代码
6 t1 k; m( m' q3 w0 W
* ^+ v8 f+ b! S* j8 D然后将所有修改的$admin_dir变量修改成ADMIN_DIR,例如:
: n/ o% Z: y P$ J! h5 C7 T# d6 e1 c3 \) b3 b0 p
- require_once(ROOT_PATH . $admin_dir.'/includes/lib_goods.php');
- 修改成
- require_once(ROOT_PATH . ADMIN_DIR.'/includes/lib_goods.php');
复制代码
4 ~9 i7 V# K. P8 c F4 `0 ]$ Q; Y
5 C5 f# p+ y+ T其它的以此类推..这里就省略了..
$ G# Q7 q% j/ O1 _, P7 D& w4 F9 s/ ~2 g: a4 {. c
11.根据pjb126 网友提示修改/admin/picture_batch.php 第20行
' K$ G- E# B' n4 C
/ [3 C) H& l. m# g8 ]$ Q- include_once(ROOT_PATH . '/admin/includes/lib_goods.php');
- 修改成
- include_once(ROOT_PATH .$admin_dir.'/includes/lib_goods.php');
复制代码 , ^4 G9 P' G. C$ r8 j* {
2 P$ }+ K3 |9 C1 X, [6 P0 {9 v12.新增修改quotation.php 第63行
' w2 c( v9 J5 q K0 d' c- _2 s" c0 }0 X6 v5 c6 `
- include_once(ROOT_PATH . 'admin/includes/lib_main.php');
复制代码 ! \7 S8 b7 x2 H C- \
' J2 p# s* O& O( E+ N" B( |7 l修改成7 i- ?2 z0 ?. b) L1 j+ w/ E
* w9 v2 S+ u! a& C- global $admin_dir;
- include_once(ROOT_PATH . $admin_dir.'/includes/lib_main.php');
复制代码
' t, k" N8 ^) J j. H: m1 f" m$ p- j( M9 c- o- ]
没有完全测试...有问题的可以留言..大家伙一块调试... |
|