Heim > PHP-Framework > Denken Sie an PHP > Die thinkphp5-Konfiguration erlaubt der angegebenen IP den Zugriff auf das Modul

Die thinkphp5-Konfiguration erlaubt der angegebenen IP den Zugriff auf das Modul

Freigeben: 2020-04-06 09:08:36
nach vorne
5060 Leute haben es durchsucht

Die thinkphp5-Konfiguration erlaubt der angegebenen IP den Zugriff auf das Modul

Hinzufügen

'allow_module_ip' => ['admin' => '*'], // Bestimmte IPs so festlegen, dass in config.php darauf zugegriffen werden kann. Geben Sie das Modul an

['admin' => '*'] Alle IPs können auf das Admin-Modul zugreifen,
['admin' => ['127.0.0.1','192.168.1.100'] ] Nur diese beiden IPs können auf das Admin-Modul zugreifen

Am besten fügen Sie es an diesem Ort hinzu

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

Der Framework-Code muss geändert werden

thinkphp/library/think/App.php

Der Codespeicherort ist wie folgt

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);
        }
        
        // ......
}
Nach dem Login kopieren

Empfohlenes Tutorial: Thinkphp-Tutorial

Das obige ist der detaillierte Inhalt vonDie thinkphp5-Konfiguration erlaubt der angegebenen IP den Zugriff auf das Modul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage