ECSHOP优化 设置404页面

某网站使用了ecshop程序,然后优化过程中发现没有404页面,在制作404页面后,发现不存在的地址(动态页面)并未转向404页面,而是直接跳转到首页,所以需要对程序进行修改

首先说下程序的修改,之后再介绍下服务器的设置和伪静态的设置(只需设置其中一种即可)。


以产品分类页为例,根目录category.php;

/* 获得请求的分类 ID */
if (isset($_REQUEST['id']))
{
    $cat_id = intval($_REQUEST['id']);
}
elseif (isset($_REQUEST['category']))
{
    $cat_id = intval($_REQUEST['category']);
}
else
{
    /* 如果分类ID为0,则返回首页 */
    ecs_header("Location: ./\n");

    exit;
}

上面有注释,ecs_header("Location: ./\n");这部分需要修改,改成

ecs_header("Location: /404.html\n");


再往下,查找

$cat = get_cat_info($cat_id);   // 获得分类的相关信息


    if (!empty($cat))
    {
        $smarty->assign('keywords',    htmlspecialchars($cat['keywords']));
        $smarty->assign('description', htmlspecialchars($cat['cat_desc']));
        $smarty->assign('cat_style',   htmlspecialchars($cat['style']));
//yyy添加start
$smarty->assign('parent_id',   htmlspecialchars($cat['parent_id']));
$smarty->assign('cat_id', $cat_id);
//yyy添加end
    }
    else
    {
        /* 如果分类不存在则返回首页 */
        ecs_header("Location: ./\n");


        exit;
    }

同样将ecs_header("Location: ./\n");这部分需要修改,改成

ecs_header("Location: /404.html\n");


因本网站启用了自定义URL插件,自定义匹配是匹配分类,所以本程序只需要修改category.php即可,未启用自定义URL的需要对其他页面程序也进行同样修改。


所在的服务器使用IIS,在站点自定义错误那,需要设置404错误为url,url填入"/404.html"


启用自定义url需要rewrite支持,伪静态规则则需填写httpd.conf

ErrorDocument 404 /404.html

如果是其他类型的伪静态,也许设置其他形式的404转向!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值