dedecms 如何实现全站动态化?
发布于 作者:苏南大叔 来源:程序如此灵动~本文中,苏南大叔说的dedecms
如何换成全站动态URL。这个操作很逆风的说,因为目前的趋势,都是全站静态化。但是dedecms
天生就是静态化的,所以对于爱折腾的用户来说,命题就变成了dede
如何实现动态化。在这个操作过程中,需要修改一些dede
源码。所以也可以看得出:dede
本身也没有为动态化页面,做太多的准备。修改代码的过程中,也是对dedecms
增强理解的过程。
本文的测试对象为:dedecms5.7sp2
。处理的过程分为:首页动态化 / 栏目动态化 / 文档动态化。
首页动态化
正常情况下来说,网站根目录下面,会有个默认生成的index.html
。这个文件是后台默认生成的静态文件,所以,要把这个文件先删除。然后修改一下index.php
文件。
修改完的index.php
文件如下,整理的目标就是:不生成index.html
文件。
修改的目标就是:不生成静态页面,不转向静态页面。(有点折腾的感觉,对吧?)
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$GLOBALS['_arclistEnv'] = 'index';
$row = $dsql->GetOne("Select * From `dede_homepageset`");
$row['templet'] = MfTemplet($row['templet']);
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
$pv->Display();
栏目动态化
dede
的栏目默认情况下,都是不使用动态页
的。而且每个栏目都是单独设置的,所以,需要把所有已有的栏目的设置,都进行修改。新建立栏目的时候,也要注意选择使用动态页
。
当然,下面的sql
文件是个简易修改所有栏目为动态
的途径。需要特别注意的是:sql
语句中的表前缀dede_
,需要被替换成你修改过的前缀。目标操作就是设置表arctype
的isdefault
字段为-1
。
update dede_arctype set isdefault=-1
设置前后,栏目列表的url
会发生变化,从/a/xxx/
变成/plus/list.php?tid=xxx
的字样。
文档动态化
在dede
系统里面,文章
被称之为文档
,这个和其它的cms系统有点说法上的区别。
将网站所有文档都设置为“仅动态”,可以简单的执行下面的SQL语句;目标就是表archives
的字段ismake
换成-1
。同样,请注意修改默认的表前缀dede_
。
update dede_archives set ismake=-1
这个因为要处理所有的文章,最好是用sql
来解决这个问题,比较好。可以在列表中,查看处理的结果。
sql
处理前后,前台列表中的文章列表会发生变化,从某某.html
变成view.php?aid=xx
。
执行sql语句的位置
在dede
后台,存在一个功能,可以直接执行sql
,这个功能很令人震惊。一般的cms是没有这种类似功能的。不过,苏南大叔更习惯在phpmyadmin
或者navicat
里面执行语句。
总结
这样设置之后,就实现了dede
的动态化。不过,从seo
角度上来说,这样设置后,这是个历史退步的过程。然后,就引出了下一个命题,如何实现dede
的全站伪静态呢?
想知道答案么?请继续关注苏南大叔的dede
相关经验文章:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
大叔还写这种文章,我表示很震惊