大概從去年開始,我自己使用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);
以上修改后,就可以保證加了動態參數的鏈接可以正常訪問這個文章頁面,至于百度為什么訪問文章加了動態參數,以及怎么解決百度訪問鏈接的問題就沒有方向了,我的具體情況下不同網站,訪問動態鏈接的時間以及頻率都不同,什么都干預不了。
評論一下?