在Linux环境下实现DedeCms的伪静态,主要涉及到几个关键步骤,包括开启伪静态支持、修改相关文件以及配置伪静态规则,以下是详细的操作步骤:
一、开启伪静态支持
1、后台设置:登录DedeCms后台,进入“系统”->“系统基本参数”->“核心设置”,将“是否使用伪静态”设置为“是”,如果启用了问答模块,还需在“模块设置”中将“是否使用伪静态”也设置为“是”,创建栏目或批量增加栏目时,应选择“使用动态页”;添加新文章时,发布选项应选择“仅动态浏览”。
2、更新数据库:如果网站已经存在生成的静态栏目或文章HTML,需要在后台执行SQL命令行工具中的语句,以更新文档和栏目为动态浏览状态,具体语句如下:
update dede_arctype set isdefault = -1;
update dede_archives set ismake = -1;
dede
是安装时的数据表前缀,根据实际情况替换。
二、修改相关文件
1、首页伪静态:删除站点根目录下的index.html文件,以后不再更新主页HTML即可。
2、频道|列表页|文章页伪静态:主要通过修改GetFileName()
和GetTypeUrl()
两个函数来实现,对于DedeCms V5.3、V5.5和V5.6版本,需要打开/include/channelunit.func.php
进行修改;而DedeCms V5.7版本则需要打开/include/helpers/channelunit.helper.php
。
将GetFileName()
中的代码:
// 动态文章 if ($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"] . "/view-" . $aid . '-1.html'; }
替换为:
// 动态文章 if ($cfg_rewrite == 'Y') { return "/archives/view-" . $aid . '-1.html'; }
将GetTypeUrl()
中的代码:
// 动态 $reurl = $GLOBALS['cfg_phpurl'] . "/list.php?tid=" . $typeid;
替换为:
$reurl = "/category/list-" . $typeid . ".html";
3、列表分页伪静态:打开/include/arc.listview.class.php
,找到获取动态的分页列表GetPageListDM()
函数末尾处,将$plist = str_replace('.php?tid=', '-', $plist);
替换为$plist = str_replace('plus', 'category', $plist); // 将默认的plus替换成category
,然后再进行一次str_replace('.php?tid=', '-', $plist);
。
4、文章分页伪静态:打开/include/arc.archives.class.php
,找到获取动态的分页列表GetPagebreakDM()
函数末尾处,将$PageList = str_replace(".php?aid=","-",$PageList);
替换为$plist = str_replace('plus', 'archives', $plist); // 将默认的plus替换成archives
,然后再进行一次str_replace(".php?aid=","-",$PageList);
。
5、TAG标签伪静态:打开/include/taglib/tag.lib.php
,找到lib_tag()
函数下的$row['link'] = $cfg_cmsurl . "/tags.php?/" . urlencode($row['keyword']) . "/";
,替换为$row['link'] = $cfg_cmsurl . "/tags/" . urlencode($row['keyword']) . "/";
。
6、搜索伪静态:DedeCms搜索URL的静态化相对复杂,因为附带参数多且可能变化,一种简化的方法是将搜索URL中的“search.php?”直接替换为“search.html?”,并对“?”号之后的参数进行任意字符匹配,具体操作是依次打开include
文件夹下的channelunit.func.php
、arc.searchview.class.php
、arc.taglist.class.php
以及/include/taglib/hotwords.lib.php
,查找并替换其中的“search.php?”为“search.html?”。
三、伪静态规则配置
在Linux服务器上,通常使用.htaccess
文件来配置伪静态规则,在网站根目录下创建一个.htaccess
文件(如果不存在的话),并添加以下内容:
RewriteEngine On
RewriteBase /
RewriteRule ^(.)index.html$ $1/index.php
RewriteRule ^(.)list-([0-9]+).html$ $1/plus/list.php?tid=$2
RewriteRule ^(.)list-([0-9]+)-([0-9]+).html$ $1/plus/list.php?tid=$2&PageNo=$3
RewriteRule ^(.)view-([0-9]+).html$ $1/plus/view.php?aid=$2
RewriteRule ^(.)view-([0-9]+)-([0-9]+).html$ $1/plus/view.php?aid=$2&pageno=$3
这些规则会将特定格式的URL重写为对应的PHP脚本处理,从而实现伪静态效果,不同的服务器环境和DedeCms版本可能需要略微调整上述规则。
是在Linux环境下实现DedeCms伪静态的详细步骤,需要注意的是,在进行任何修改之前,建议备份相关文件和数据库,以防万一出现意外情况导致数据丢失或网站无法正常运行,由于DedeCms的版本更新可能会带来一些变化,因此在实际操作过程中,最好参考最新的官方文档或社区资源。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1645271.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复