文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>thinkphp5怎么增加允许指定ip访问模块配置

thinkphp5怎么增加允许指定ip访问模块配置

时间:2021-03-23  来源:互联网

今天PHP爱好者给大家带来thinkphp5增加允许指定ip访问模块配置方法,希望对需要的朋友有所帮助!快来看看吧。

thinkphp5增加允许指定ip访问模块配置

在config.php中添加

'allow_module_ip' => ['admin' => '*'], // 设置某些ip可以访问指定模块

['admin' => '*'] 所有ip都可以访问admin模块,
['admin' => ['127.0.0.1','192.168.1.100']] 仅这两个ip可以访问admin模块

最好加在这个位置

// 禁止访问模块
'deny_module_list'       => ['common'],
// 设置某些ip可以访问指定模块
'allow_module_ip'        => ['admin' => '*'],
// 默认控制器名
'default_controller'     => 'Index',

需要修改框架代码
thinkphp/library/think/App.php

代码位置如下

public static function module($result, $config, $convert = null) {
       if (is_string($result)) {
           $result = explode('/', $result);
       }
       $request = Request::instance();
       if ($config['app_multi_module']) {
           // 多模块部署
           $module    = strip_tags(strtolower($result[0] ?: $config['default_module']));
           $bind      = Route::getBind('module');
           $available = false;
           if ($bind) {
               // 绑定模块
               list($bindModule) = explode('/', $bind);
               if (empty($result[0])) {
                   $module    = $bindModule;
                   $available = true;
               } elseif ($module == $bindModule) {
                   $available = true;
               }
           } elseif (!in_array($module, $config['deny_module_list']) && is_dir(APP_PATH . $module)) {
               $available = true;
           }
           
           //region 设置了限制ip访问模块, 如:'allow_module_ip' => ['admin'=>['127.0.0.1']]
           if (isset($config['allow_module_ip']) && isset($config['allow_module_ip'][$module])) {
               $allowIps = $config['allow_module_ip'][$module];
               if (!in_array($_SERVER['REMOTE_ADDR'], $allowIps) && $allowIps != '*') {
                   $available = false;
               }
           }
           //end region
           // 模块初始化
           if ($module && $available) {
               // 初始化模块
               $request->module($module);
               $config = self::init($module);
               // 模块请求缓存检查
               $request->cache($config['request_cache'], $config['request_cache_expire'], $config['request_cache_except']);
           } else {
               throw new HttpException(404, 'module not exists:' . $module);
           }
       } else {
           // 单一模块部署
           $module = '';
           $request->module($module);
       }
       
       // ......
}

以上就是thinkphp5怎么增加允许指定ip访问模块配置的详细内容,更多请关注php爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载