鉴于有些客户由于某些原因,无法立即升级微擎系统。为此提供自行更改代码的方案:以下操作方法需操作人有代码经验,无代码经验人士最好选择到 站点控制台 进行在线升级自行更改代码说明: 1.修改/web/index.php,在该文件中找到如下代码:require __DIR__ . '/../framework/bootstrap.inc.php';
require IA_ROOT . '/web/common/bootstrap.sys.inc.php';
在该代码块下面添加以下代码:if (!empty($_W['setting']['copyright']['login_route']) && $_W['setting']['copyright']['login_route'] == $_GPC['c']) {
$controller = 'user';
$action = 'login';
}
2.修改/web/source/user/login.ctrl.php,找到37行(站点版本不同的话代码位置可能有差池)的代码片段:template('user/login-' . $login_template);
替换为if (empty($_W['setting']['copyright']['login_route']) || $_GPC['c'] == $_W['setting']['copyright']['login_route']) {
template('user/login-' . $login_template);
} else {
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
exit;
}
3.修改/web/source/system/site.ctrl.php,找到62行的switch代码片段,插入如下代码:case 'login_route':
if (!empty($_GPC['value'])) {
$login_route = safe_gpc_string($_GPC['value']);
if (empty($login_route)) {
iajax(-1, '自定义路由值只支持字母和数字');
}
} else {
$login_route = '';
}
$settings['login_route'] = $login_route;
break;
4.修改/framework/model/system.mod.php,找到system_setting_items()函数,将该函数替换为如下代码:function system_setting_items() {
return array(
'bind',
'icp',
'policeicp',
'login_type',
'log_status',
'mobile_status',
'reason',
'autosignout',
'status',
'welcome_link',
'login_verify_status',
'address',
'blogo',
'baidumap',
'background_img',
'company',
'companyprofile',
'description',
'email',
'footerleft',
'footerright',
'flogo',
'icon',
'keywords',
'leftmenufixed',
'notice',
'oauth_bind',
'phone',
'person',
'qq',
'statcode',
'slides',
'showhomepage',
'sitename',
'template',
'login_template',
'url',
'verifycode',
'slide_logo',
'console_status',
'login_route',
);
}
5.修改/web/themes/default/account/welcome.html,找到16行的代码:<a href="{url 'user/login'}" class="btn btn-primary btn-lg"><i class="fa fa-user"></i> 立即登录</a>
替换为:{if !empty($_W['setting']['copyright']['login_route'])}
<a href="{php echo url($_W['setting']['copyright']['login_route'])}" class="btn btn-primary btn-lg"><i class="fa fa-user"></i> 立即登录</a>
{else}
<a href="{url 'user/login'}" class="btn btn-primary btn-lg"><i class="fa fa-user"></i> 立即登录</a>
{/if}
6.(1)如果已经进不去微擎站点控制台,可以在您服务器微擎项目根目录下新建一个PHP文件(文件名自己定,比如qwe.php),文件代码如下:<?php
require __DIR__ . '/framework/bootstrap.inc.php';
$settings = $_W['setting']['copyright'];
$if_safe = rule_alpha_num($_GPC['login_route']);
if (empty($if_safe)) {
exit('自定义登录路由参数只支持数字和字母');
}
$login_route = $_GPC['login_route'];
$settings['login_route'] = $login_route;
$result = setting_save($settings, 'copyright');
if ($result) {
echo '设置成功,请及时删除该文件!安全登录地址:您可以访问' . $_W['siteroot'] . 'web/index.php?c=' . $login_route . '来进行登录操作。';
}
function rule_alpha_num($value) {
return is_scalar($value) && 1 === preg_match('/^[A-Za-z0-9]+$/', (string)$value);
}
然后访问 https://yuming.com/qwe.php?login_route=xxxx (xxxx由自己设置) 即可设置成功,效果如下图:(2)如果可以进到 微擎站点控制台->站点设置->基本信息,则修改“自定义登录路由”选项,效果如下:设置自定义登录路由后,默认地登录页面无法访问,若想登录需要访问自定义的登录路由。
本文出自快速备案,转载时请注明出处及相应链接。