您的位置:首页 > 运维架构

ECSHOP优化 设置404页面

2013-11-22 08:39 246 查看
某网站使用了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转向!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: