在ecshop系统当中,比如你随意将商品详细页面的地址中的ID修改为一个不存在的商品ID,ecshop会自动跳转到首页。
ecshop在这方面做得非常的差,甚至导致了很多的站不被搜索引擎收录。最模板提供该ecshop教程分析如下:
1、分析:ECSHOP程序文件category.php及goods.php等页面多处存在以下这样的代码:ecs_header("Location:./\n");exit;以上代码的意思是,如果找不到当前ID下的分类或者商品,则跳转到网站首页。这样子跳转,返回的HTTP代码将会是302,表明此页面信息暂时性转移,这类跳转代码很容易引起搜索引擎封杀,因此我们需要作出404的优化。
2、修改涉及的文件:
article.php,article_cat.php,brand.php,category.php,comment.php,goods.php,topic.php
3、修改方法:将以上7个文件中的
ecs_header("Location: ./\n");
全部改为
ecs_header("HTTP/1.0 404 Not Found");
$smarty->display('404.html');
同时在网站文件中加入404.html文件
ECSHOP中404错误页面的设置方法如下,服务器定向:
1、对于存在的网页内容由于路径改变而导致访问不了时,可在IIS中定义404错误指向一个动态页面,在页面里面使用301永久重定向跳转到新的地址,此时服务器返回301状态码。
2、设置404指向一个设计好的html文件,此时页面返回的404状态码。现在的idc提供商基本都提供404设置的功能,直接上传文件设置即可。在IIs中设置方法:打开IIS管理器-->点击要设置自定义404的网站的属性-->点击自定义错误选项-->选中404页-->选中并打开编辑属性-->设置成 URL --> URL里填写“/err404.html”-->按确定退出再把做好的err404.html页面上传到网站根目录下。此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。
3、404指向一个动态页面,比如error.asp,如果不在页面里面进行设置,仅仅是返回提示的HTML 代码,将导致页面返回200状态码,这是不正确的,我们可以在显示完提示内容后,增加语句: Response.Status="404 Not Found",这样就保证页面返回404状态码。
4、Apache下设置404错误页面。为ApacheServer设置404错误页面的方法很简单,只需在.htaccess 文件中加入如下内容即可,ErrorDocument 404/notfound.php