全国服务热线:18271592020
资讯

关于长亭空间

超值服务提供卓越产品

   
  
  
新闻公告 News
   
zblog蜘蛛访问链接带有参数 ?wd=&eqid=*** 导致访问404怎么解决?
来源: | 作者:chang | 发布时间: 2024-02-11 | 30 | 分享到:

大概从去年开始,我自己使用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

image.png

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);

image.png

以上修改后,就可以保证加了动态参数的链接可以正常访问这个文章页面,至于百度为什么访问文章加了动态参数,以及怎么解决百度访问链接的问题就没有方向了,我的具体情况下不同网站,访问动态链接的时间以及频率都不同,什么都干预不了。