SEO超级伪静态 目录化伪静态后,有时点击跳转到错误链接的解决办法
部分插件跳转时,没带上网站域名,然后浏览器就默认以当前url路径为前缀进行跳转,导致链接错误打开:source\function\function_core.php
找到
function dheader($string, $replace = true, $http_response_code = 0) { $islocation = substr(strtolower(trim($string)), 0, 8) == 'location'; if(defined('IN_MOBILE') && strpos($string, 'mobile') === false && $islocation) { if (strpos($string, '?') === false) { $string = $string.'?mobile='.IN_MOBILE; } else { if(strpos($string, '#') === false) { $string = $string.'&mobile='.IN_MOBILE; } else { $str_arr = explode('#', $string); $str_arr = $str_arr.'&mobile='.IN_MOBILE; $string = implode('#', $str_arr); } } } $string = str_replace(array("\r", "\n"), array('', ''), $string); if(empty($http_response_code) || PHP_VERSION < '4.3' ) { @header($string, $replace); } else { @header($string, $replace, $http_response_code); } if($islocation) { exit(); }}修改为function dheader($string, $replace = true, $http_response_code = 0) { global $_G; $islocation = substr(strtolower(trim($string)), 0, 8) == 'location'; if($islocation){ if(!preg_match('/location:\s*https?:\/\//is', $string)){ $string = preg_replace("/location:\s*/is", 'Location: '.$_G['siteurl'], $string); } } if(defined('IN_MOBILE') && strpos($string, 'mobile') === false && $islocation) { if (strpos($string, '?') === false) { $string = $string.'?mobile='.IN_MOBILE; } else { if(strpos($string, '#') === false) { $string = $string.'&mobile='.IN_MOBILE; } else { $str_arr = explode('#', $string); $str_arr = $str_arr.'&mobile='.IN_MOBILE; $string = implode('#', $str_arr); } } } $string = str_replace(array("\r", "\n"), array('', ''), $string); if(empty($http_response_code) || PHP_VERSION < '4.3' ) { @header($string, $replace); } else { @header($string, $replace, $http_response_code); } if($islocation) { exit(); }} 如果你的插件没问题,只是帖子偶尔打开连接错误,可以考虑下边的方法
打开 source\module\forum\forum_viewthread.php
找到
dheader("Location:forum.php?mod=viewthread&tid=$_G");
改成
dheader("Location:$_Gforum.php?mod=viewthread&tid=$_G");
这是discuz自身对“主题有楼层不准确时”的一个操作,跳转是为了处理后刷新页面,但跳转时没带上域名,导致跳转错误
页:
[1]