如果是用的动态url则不存在这个分页问题!主要是设置伪静态后,在构成分页时,那里的传URLRULE仍然是原来默认你设置的栏目的url规则!所以我们在构造筛选的同时,也要重新构造url规则!参考房产信息列表可知分类信息模型里,官方已经给我们写好了一个重新构造url规则的方法!makeurlrule();
当时打开这个方法看的时候,就可以其实归根到底,还是一个get_url()的方法出了问题!
因此我们打开global.func.php这个文件!找到get_url()这个方法!你就会发现,这里取得的url始终是动态的,即便你设置了伪静态,这里取得url也一样是动态的!因些,我们要对这个方法进行修改!下进我贴上代码!
/** * 重写取得当前页面的完整URL地址,支持取得伪静态URL 4am 2015_07_21 伪静态分页错误 887921 */ function get_url() { $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; //判断重写是Apache还是ISAPI_Rewrite环境 if($_SERVER['REDIRECT_QUERY_STRING'] || $_SERVER['REDIRECT_URL']){ //Apche环境 return $sys_protocal.$host.$_SERVER['REDIRECT_URL']; }else if($_SERVER['HTTP_X_REWRITE_URL']){ //ISAPI Rewrite环境 return $sys_protocal.$host.$_SERVER['HTTP_X_REWRITE_URL']; }else{ //取得动态url $php_self = $_SERVER['PHP_SELF'] ? safe_replace($_SERVER['PHP_SELF']) : safe_replace($_SERVER['SCRIPT_NAME']); $path_info = isset($_SERVER['PATH_INFO']) ? safe_replace($_SERVER['PATH_INFO']) : ''; $relate_url = isset($_SERVER['REQUEST_URI']) ? safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.safe_replace($_SERVER['QUERY_STRING']) : $path_info); return $sys_protocal.$host.$relate_url; } }
最后要注意的就是,在模板中调用的时候,一定要加用urlrule