_location($cfg['weburl'].$uri.'/', '301'); } $_GET['control'] = 'model'; $_GET['action'] = 'index'; if(substr($uri, -1) == '/'){ $newurl = substr($uri, 0, -1); }else{ $newurl = $uri; } //模型首页URL if( isset($model_arr[$newurl]) ) { $_GET['mid'] = (int)$model_arr[$newurl]; return true; } //模型分页URL $u_arr = explode('/', $newurl); if( isset($model_arr[$u_arr[0]]) ) { $_GET['mid'] = (int)$model_arr[$u_arr[0]]; //分页 if( isset($u_arr[1]) ){ if($page = $this->page_check($u_arr[1])){ $_GET['page'] = $page; }else{ core::error404(); } } return true; } unset($_GET['control']); unset($_GET['action']); return false; } //分类URL解析 protected function category_url($cfg = array(), $uri = ''){ //分类信息 alias=>cid $cate_arr = array_flip($cfg['cate_arr']); // 分类URL未设置后缀的情况,301重定向到已设置后缀的URL if( isset($cate_arr[$uri]) ) { http_location($cfg['weburl'].$uri.$cfg['link_cate_end'], '301'); } $_GET['control'] = 'cate'; $_GET['action'] = 'index'; $len = strlen($cfg['link_cate_end']); //分页首页URL if(substr($uri, -$len) == $cfg['link_cate_end']) { $newurl = substr($uri, 0, -$len); if( isset($cate_arr[$newurl]) ) { $_GET['cid'] = (int)$cate_arr[$newurl]; return true; } } //分类URL分页的情况 if(strpos($uri, $cfg['link_cate_page_pre']) !== FALSE) { $len = strlen($cfg['link_cate_page_end']); if(substr($uri, -$len) == $cfg['link_cate_page_end']) { $newurl = substr($uri, 0, -$len); $u_arr = explode($cfg['link_cate_page_pre'], $newurl); if( isset($cate_arr[$u_arr[0]]) ) { $_GET['cid'] = (int)$cate_arr[$u_arr[0]]; //分页 if( isset($u_arr[1]) ){ if($this->integer_check($u_arr[1])){ $_GET['page'] = $u_arr[1]; }else{ core::error404(); } } return true; } } } unset($_GET['control']); unset($_GET['action']); return false; } //内容URL解析 protected function content_url($cfg = array(), $uri = ''){ $link_show_end = $cfg['link_show_end']; $link_show_end_len = strlen($link_show_end); $cate_arr = array_flip($cfg['cate_arr']); $newurl = $link_show_end_len ? substr($uri, 0, -$link_show_end_len) : $uri; $_GET['control'] = 'show'; $_GET['action'] = 'index'; switch ($cfg['link_show_type']){ case 1: //数字型 preg_match("/^(\d+)\/(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ){ $_GET['cid'] = $mat[1]; $_GET['id'] = $mat[2]; return true; } break; case 2: //推荐型 preg_match("/^(\w+)\/(\d+)$/i", $newurl, $mat); if( isset($mat[2]) && isset($cate_arr[$mat[1]]) ){ $_GET['cid'] = $cate_arr[$mat[1]]; $_GET['id'] = $mat[2]; return true; } break; case 3: //别名型 preg_match("/^(\d+)\_(\d+)$/i", $newurlg'; $_GET['action'] = 'index'; $newurl = substr($uri, $len, -$len2); $u_arr = explode('/', $newurl); $u_arr_count = count($u_arr); if($u_arr_count > 2){ core::error404(); } //分页 if( isset($u_arr[1]) ){ $page = $this->page_check($u_arr[1]); if($page){ $_GET['page'] = $page; }else{ core::error404(); } } switch ($cfg['link_tag_type']){ case 0: preg_match('/^(\d+)\_(.+)$/i', $u_arr[0], $mat); if( isset($mat[2]) ) { if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = $mat[1]; $_GET['name'] = $mat[2]; return true; }else{ $_GET['mid'] = 2; $_GET['name'] = $u_arr[0]; return true; } break; case 1: preg_match("/^(\d+)\_(\d+)$/i", $u_arr[0], $mat); if( isset($mat[2]) ) { if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = $mat[1]; $_GET['tagid'] = $mat[2]; return true; }elseif( $this->integer_check($u_arr[0]) ){ $_GET['mid'] = 2; $_GET['tagid'] = $u_arr[0]; return true; } break; case 2: $newurl = decrypt($u_arr[0]);//解密得到 mid_tagid preg_match("/^(\d+)\_(\d+)$/i", $newurl, $mat); if( isset($mat[2]) ){ if( !$this->mid_check($mat[1], $cfg) ){core::error404();} $_GET['mid'] = (int)$mat[1]; $_GET['tagid'] = (int)$mat[2]; return true; } break; case 3: $newurl = hashids_decrypt($u_arr[0]);//解密得到 mid tagid 数组 if(is_array($newurl) && isset($newurl[1])){ $_GET['mid'] = (int)$newurl[0]; $_GET['tagid'] = (int)$newurl[1]; return true; } break; } }else{ //尝试301跳转到带后缀的链接试试看~ http_location($cfg['weburl'].$uri.$cfg['link_tag_end'], '301'); } } unset($_GET['control']); unset($_GET['action']); return false; } //搜索URL解析 protected function search_url($cfg = array(), $uri = ''){ if(substr($uri, 0, 7) == 'search/') { if(substr($uri, -1) != '/'){$uri .= '/';} $newurl = substr($uri, 7, -1); $uarr = explode('/', $newurl); //模型ID if(isset($uarr[0]) && substr($uarr[0], 0 ,4) == 'mid_'){ $mid = substr($uarr[0], 4); if($this->mid_check($mid, $cfg)){ $_GET['mid'] = $mid; array_shift($uarr); }else{ core::error404(); } }else{ $_GET['mid'] = 2; } //排除多余的参数 if(count($uarr) > 2){core::error404();} //关键词 $_GET['keyword'] = $uarr[0]; //分页 if( isset($uarr[1]) ){ $page = $this->page_check($uarr[1]); if($page){ $_GET['page'] = $page; }else{ core::error404(); } } $_GET['control'] = 'search'; $_GET['action'] = 'index'; return true; } //搜索页面链接解析 $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 && substr($uri, 0, -$url_suffix_len) == 'so') { $_GET['control'] = 'search'; $_GET['action'] = 'so'; return true; } return false; } //评论URL解析 protected function comment_url($cfg = array(), $uri = ''){ $len = 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(subs Lecms 3.0.3 错误

错误信息

错误位置

基本信息

程序流程

SQL

$_GET

$_POST

$_COOKIE

包含文件

其他信息