我仔细检查了ecshop
发现category.php及goods.php等页面多处存在类似以下这样的代码
/* 如果分类不存在则返回首页 */
ecs_header("Location: ./\n");
exit;
以上代码的意思是,如果找不到当前ID下的分类或者商品,则跳转到网站首页.
表面上看,这种做法是为了留住客户,让网站对客户友好,殊不知,已经犯下了一个超级大错误,给网站种下了一个不定时炸蛋.
这样子跳转,返回的代码将会是302(注意:人是看不到302的,只有通过软件检测才能检测到),302代表暂时性转移(Temporarily Moved ),Business.com以及宝马德国网站都因为302受到了google封杀.目前302跳转是主流各大搜索引擎的主要打击对象.
ecshop实在不应该在把不存在的ID作302跳转,你只要做一个单独的报错页面,然后把这些错误都作301跳转到统一页面不就行了吗?实在不行你就让它返回404也好呀.偏偏搞个302
如果有朋友的网站收录一夜这间减少好多或者变为0,那就是拜这个302所赐.
修改方法:最简单的方法是让它返回404,即把
ecs_header("Location: ./\n");
exit;
改为
header("HTTP/1.0 404 Not Found");
exit;
有能力的朋友,可以做301跳到单独的页面.
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。