1. 程式人生 > >Thinkphp 3.2.* 路由重寫BUG ,修正方法

Thinkphp 3.2.* 路由重寫BUG ,修正方法

找到檔案:

碟符:\專案目錄\ThinkPHP\Library\Think\Dispatcher.class.php

檔案的119行(每個開發軟體不同,大概在120行左右),截圖如下:


替換成如下內容:

define('__INFO__',trim($_SERVER['PATH_INFO'],'/'));
// URL字尾
define('__EXT__', strtolower(pathinfo($_SERVER['PATH_INFO'],PATHINFO_EXTENSION)));
$_SERVER['PATH_INFO'] = __INFO__;
if (__INFO__ && !defined('BIND_MODULE') && C('MULTI_MODULE') && !Route::check() && !empty($_GET)){ 
    $paths      =   explode($depr,__INFO__,2);
    $allowList  =   C('MODULE_ALLOW_LIST'); // 允許的模組列表
    $module     =   preg_replace('/\.' . __EXT__ . '$/i', '',$paths[0]);
    if( empty($allowList) || (is_array($allowList) && in_array_case($module, $allowList))){
        $_GET[$varModule]       =   $module;
        $_SERVER['PATH_INFO']   =   isset($paths[1])?$paths[1]:'';
    }
}