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]:'';
}
}