html 格式,其中 A 是栏目的名称或 男_金 格式 $url_suffix = isset($_ENV['_config']['url_suffix']) ? $_ENV['_config']['url_suffix'] : '.html'; $url_suffix_len = strlen($url_suffix); if(substr($uri, -$url_suffix_len) == $url_suffix) { $filename = substr($uri, 0, -$url_suffix_len); // 不跳过任何 kangxi 前缀的 URL,让系统先处理,处理不了再让我们处理 // 检查 $cfg['cate_arr'] 是否存在 if(isset($cfg['cate_arr']) && !empty($cfg['cate_arr'])) { $cate_arr = array_flip($cfg['cate_arr']); // 检查是否是分类目录下的文件 $u_arr = explode('/', $filename); $file_basename = end($u_arr); $cate_path = implode('/', array_slice($u_arr, 0, -1)); // URL 解码 $file_basename = urldecode($file_basename); $cate_path = urldecode($cate_path); // 查找分类 $cate_id = 0; if(empty($cate_path)) { // 根目录下的文件,检查是否直接是分类别名 if(isset($cate_arr[$file_basename])) { $cate_id = $cate_arr[$file_basename]; } } elseif(isset($cate_arr[$cate_path])) { // 分类目录下的文件,匹配分类 $cate_id = $cate_arr[$cate_path]; } if($cate_id > 0) { $_GET['control'] = 'cate'; $_GET['action'] = 'index'; $_GET['cid'] = $cate_id; // 获取筛选分类信息 if(!isset($GLOBALS['filter_arr'])) { $fiter_arr = $this->filter->get_filter_html_by_cid($cate_id); $GLOBALS['filter_arr'] = &$fiter_arr; } $filter_arr = &$GLOBALS['filter_arr']; // 检查是否是数字 ID,处理内容页面 if(is_numeric($file_basename)) { // 是数字 ID,设置为内容页面 $_GET['control'] = 'show'; $_GET['action'] = 'index'; $_GET['id'] = (int)$file_basename; // 保留 cid 参数,show 控制器需要它来获取分类信息 return; } else if(strpos($file_basename, '_') !== FALSE) { // 检查是否是 男_金 格式 list($xmx, $wuxing) = explode('_', $file_basename, 2); // 设置性别和五行分类参数 $_GET['xmx'] = $xmx; $_GET['wuxing'] = $wuxing; // 移除 fids 参数,避免与分类插件冲突 unset($_GET['fids']); return; } else { // 查找与文件名匹配的筛选值 $found = false; foreach($filter_arr as $index => $filter) { foreach($filter['filterlist'] as $fid => $fname) { // 检查名称匹配 if($file_basename == $fname) { // 生成 fids 参数 $fids = array_fill(0, 5, 0); $fids[$index] = $fid; $_GET['fids'] = implode('_', $fids); $found = true; return; } // 检查别名匹配 $filter_info = $this->filter->get($fid); if($filter_info && $file_basename == $filter_info['alias']) { // 生成 fids 参数 $fids = array_fill(0, 5, 0); $fids[$index] = $fid; $_GET['fids'] = implode('_', $fids); $found = true; return; } } } // 如果没有找到匹配的筛选值,不返回 404,让系统继续处理 } } } }// strlen($cfg['link_comment_pre']); if(substr($uri, 0, $len) == $cfg['link_comment_pre']) { $url_suffix = isset($_ENV['_config']['url_suffix']) ? $_ENV['_config']['url_suffix'] : '.html'; $url_suffix_len = strlen($url_suffix); if(substr($uri, -$url_suffix_len) == $url_suffix) { $newurl = substr($uri, $len, -$url_suffix_len); $u_arr = explode('_', $newurl); if(count($u_arr) > 1) { $_GET['control'] = 'comment'; $_GET['action'] = 'index'; $_GET['cid'] = $u_arr[0]; $_GET['id'] = $u_arr[1]; //分页 if(isset($u_arr[2])){ if($this->integer_check($u_arr[2])){ $_GET['page'] = $u_arr[2]; }else{ core::error404(); } } return true; } } } return false; } //首页分页URL解析 protected function index_page_url($cfg = array(), $uri = ''){ $url_suffix = isset($_ENV['_config']['url_suffix']) ? $_ENV['_config']['url_suffix'] : '.html'; $url_suffix_len = strlen($url_suffix); if(substr($uri, 0, 6) == 'index_' && substr($uri, -$url_suffix_len) == $url_suffix) { $newurl = substr($uri, 0, -$url_suffix_len); preg_match("/^index_(\d+)$/i", $newurl, $mat); if( isset($mat[1]) ){ if(!$this->integer_check($mat[1])){core::error404();} $_GET['control'] = 'index'; $_GET['action'] = 'index'; $_GET['mid'] = 2; $_GET['page'] = $mat[1]; return true; } preg_match("/^index_(\d+)_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ){ if(!$this->mid_check($mat[1], $cfg)){core::error404();} if(!$this->integer_check($mat[2])){core::error404();} $_GET['control'] = 'index'; $_GET['action'] = 'index'; $_GET['mid'] = $mat[1]; $_GET['page'] = $mat[2]; return true; } } return false; } //热门标签 全部标签 URL解析 protected function tag_like_url($cfg = array(), $uri = ''){ // 热门标签 if($uri == $cfg['link_tag_top'] || $uri == $cfg['link_tag_top'].'/') { if($uri == $cfg['link_tag_top']){ http_location($cfg['weburl'].$uri.'/', '301'); } $_GET['control'] = 'tag'; $_GET['action'] = 'top'; return true; } //全部标签 if(substr($uri, 0, 8) == 'tag_all/' || substr($uri, 0, 7) == 'tag_all'){ if(substr($uri, -1) != '/'){ http_location($cfg['weburl'].$uri.'/', '301'); } $u_arr = explode('/', $uri); if($u_arr[0] != 'tag_all'){ core::error404(); }else{ unset($u_arr); } $_GET['control'] = 'tag'; $_GET['action'] = 'all'; $newurl = substr($uri, 8, -1); if($newurl){ if(is_numeric($newurl) && $newurl > 0){ $_GET['mid'] = 2; $_GET['page'] = $newurl; }else{ $u_arr = explode('_', $newurl); if(count($u_arr) > 2){core::error404();} if(!$this->mid_check($u_arr[0], $cfg)){core::error404();} $_GET['mid'] = $u_arr[0]; if(is_numeric($u_arr[1]) && $u_arr[1] > 0){ $_GET['page'] = $u_arr[1]; }else{ core::error404(); } } Lecms 3.0.3 错误

错误信息

错误位置

基本信息

程序流程

SQL

$_GET

$_POST

$_COOKIE

包含文件

其他信息