zblog蜘蛛访问链接带有参数 ?wd=&eqid=*** 导致访问404怎么解决?
尤尤
阅读:661
2024-02-11 01:34:28
评论:0
大概从去年开始,我自己使用zblog建立的站点,无预警的出现多次百度蜘蛛访问链接时结尾带有?wd=&eqid=***这样的动态参数,最终打不开网页,出现404无法访问的情况,既然无法访问肯定是会影响到seo效果的,这种参数出现次数少还好,一旦大量出现,甚至几乎全部百度蜘蛛访问链接都带参数就需要谨慎处理了,避免被降权。
有个临时的解[]决访问,通过[]修改zblo[]g程序文件,[]让蜘蛛访问的[]这个动态链接[]能够正常访问[]网页内容,方[]法如下:
1、找到c_[]system[]_commo[]n.php文[]件,位置在:[]zb_sys[]tem/fu[]nction[]/c_sys[]tem_co[]mmon.p[]hp
2、在c_system_common.php的大概502行(每一个版本的zblog可能都不同行数),或搜索其中一行找到此段代码:
if (strpos($url, '?') !== false) { $queries = GetValueInArray(explode('?', $url), '1'); foreach (explode('&', $queries) as $query) { $name = GetValueInArray(explode('=', $query), '0'); $value = GetValueInArray(explode('=', $query), '1'); $name = urldecode($name); $value = urldecode($value); if (!isset($_GET[$name])) { $_GET[$name] = $value; } if (!isset($_GET[$name])) { $_REQUEST[$name] = $value; } } } } elseif (isset($_SERVER['REQUEST_URI'])) { $url = $_SERVER['REQUEST_URI']; } elseif (isset($_SERVER['REDIRECT_URL'])) { $url = $_SERVER['REDIRECT_URL']; if (isset($_SERVER['REDIRECT_QUERY_STRIN'])) { $url .= '?' . $_SERVER['REDIRECT_QUERY_STRIN']; } } else { $url = str_replace('\\', '/', $_SERVER['PHP_SELF']); if (strpos($url, ZBP_PATH) !== false) { $url = str_replace(ZBP_PATH, '/', $url); $url = ltrim($url, '/'); $url = '/' . $url; } if (!isset($_SERVER['QUERY_STRING'])) { $_SERVER['QUERY_STRING'] = ''; } $url = $url . ($_SERVER['QUERY_STRING'] ? '?' . $_SERVER['QUERY_STRING'] : ''); } //这里加了代码,切记看好位置,做好备份再添加测试。 $url=str_replace("html&wd","html?wd",$url);
如上方代码最后,添加:$url=str_replace("html&wd","html?wd",$url);
以上修改后,就可以保证加了动态参数的链接可以正常访问这个文章页面,至于百度为什么访问文章加了动态参数,以及怎么解决百度访问链接的问题就没有方向了,我的具体情况下不同网站,访问动态链接的时间以及频率都不同,什么都干预不了。
本文由尤尤互联整理收集 ,转载保留链接!网址:http://smtp.uuuseo.cn/categor/post/15.html