目的:让网友来帮您生成网页!HBcms可以利用web服务器的404状态,自动为您生成网页。
原理:网友访问网页123.html,如果这个网页不存在,触发404状态,调用 404.php 文件,自动跳转到程序地址,生成并显示网页123.html
高效:网友再次访问网页123.html,因为网页123.html刚才已经自动生成了,所以就可以直接打开网页了。
演示:您可以访问hbcms官方网站看效果演示 http://www.hbcms.com/
使用:首先,您的空间需要支持自定义404错误页面(目前多数虚拟主机都支持)
其次,请将404错误页面指向 /hbcms/include/hbw.cn/config/404.php 就可以了
独家:hbcms是目前唯一一个可以利用服务器的404状态生成静态页文件的cms系统!
扩展:下面是本系统的 404.php 的源代码,如果您是php程序员,可以自己进行扩展。如有更优化更高效的版本,请和大家分享!
[Copy to clipboard] [ - ]
CODE:
// +----------------------------------------------------------------------+
// | HBcms系统:利用web服务器404状态跳转自动生成静态页 |
// +----------------------------------------------------------------------+
// | This source file is released under the BSD License |
// +----------------------------------------------------------------------+
// | Copyright (c) 2006-2009 http://www.hbcms.com/ http://www.hbw.cn/ |
// +----------------------------------------------------------------------+
//
// $Id: 404.php,v 1.0 2006/07/20 12:19:30 aashley Exp $
// 私有变量
$article_dir = 'cms';
$cms_dir = 'hbcms';
$jump_url = ''; // 404状态默认跳转地址
// 获取原网页url,需兼容Apache,IIS,php不同安装模式
if ( isset($_SERVER['REDIRECT_URL']) ) {
$my_url = $_SERVER['REDIRECT_URL'];
} else if ( isset($_SERVER['URL']) ) {
$my_url = $_SERVER['URL'];
} else if ( isset($_SERVER['REQUEST_URI']) ) {
$my_url = $_SERVER['REQUEST_URI'];
}
// 分析原网页url
if ( isset($my_url) && eregi('/' . $article_dir . '/',$my_url) && eregi('.html$',$my_url) ) {
$basename_ary = explode('.',basename($my_url));
$pg_ary = explode('_',$basename_ary[0]);
// 列表页面
if ( count($pg_ary) == 2 && is_numeric($pg_ary[0]) && is_numeric($pg_ary[1]) ) {
$jump_url = '/' . $cms_dir . '/php/article_list.php?pageID=' . $pg_ary[1] . '&type_id=' . $pg_ary[0];
}
// 文章页面
if ( count($pg_ary) == 1 && is_numeric($pg_ary[0]) ) {
$jump_url = '/' . $cms_dir . '/php/article_detail.php?article_id=' . $pg_ary[0];
}
}
// php程序员可以在此处追加一些其它的处理过程
// http://www.hbcms.com/
// http://www.hbw.cn/
// ......
// ......
if ( $jump_url != '' ) {
// 执行跳转
header("HTTP/1.1 301 Moved Permanently"); // 面向搜索引擎的友好模式
header("location:$jump_url");
exit();
} else {
// 其他异常处理
header("Content-Language: charset=zh-cn");
header("Content-type: text/html; charset=GB2312");
echo '
页面不存在,请访问网站首页 ! ';
echo '
The page you requested does not exist or has moved, ';
echo '
exit();
}
?>
进阶:由于部分虚拟主机不支持直接将php文件作为404状态的执行页面,因此,我们特别制作了shtml版本。
下面是本系统的 404.shtml 的源代码,如果您比较熟悉javascript脚本,可以自己进行扩展。
本文件路径为: /hbcms/include/hbw.cn/config/404.shtml 如有更优化更高效的版本,请和大家分享!