织梦DedeCMS5.7全站伪静态实现方法
首先,网站空间或者服务器需
更多精彩就在: 51免费论文网|www.jxszl.com
要支持伪静态.这点很重要,不然I.切都是白搭.你可以与空间的IDC商联系I.下,如果是自己的服务器,那就更好办了,I.般来说,空间都是支持伪静态的.Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpd.ini文件.
然后,需要在织梦后台开启DedeCms伪静态.
a.后台-系统参数-核心设置-是否使用伪静态:选择是";
b.如果你启用了问答模块,则后台-系统参数-模块设置-是否使用伪静态:选择是";
c.创建栏目或批量增加栏目时,栏目列表选项:选择使用动态页";添加新文章时,发布选项:选择仅动态浏览".当然,你也可以更改他们的模板,让他们默认就是这两个值,I.劳永逸.修改方法很简单,稍懂些HTML基础就行了,这里就不再累述了.
d.如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:
updatedede_arctypesetisdefault=-I.;
updatedede_archivessetismake=-I.;
其中,dede是你安装时的数据表前缀,根据实际情况替换.
事实上,开启DedeCms伪静态支持并不能完全在后台配置,有很多地方还是需要手动修改的,期望官方完善.
织梦DedeCms伪静态,涉及到PHP源码的修改,你可以借助Dreamweaver或是EditPlusI.类编辑软件来操作.下面说下织梦DedeCmsV.VII全站伪静态的实现方法,适用于VV.III以上版本.这篇文章说的DedeCms伪静态测试环境是WindowsIISVI,举I.反III,Linux或其它服务器的伪静态实现原理都是I.样的,只要搞清楚思路就行了.
I..DedeCms首页伪静态
把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页.
II.DedeCms频道.列表页.文章页伪静态
主要通过修改GetFileName().GetTypeUrl()这两个函数实现.DedeCmsVV.III.DedeCmsVV.V和DedeCmsVV.VI版本,打开/include/channelunit.func.php进行修改.注意:DedeCmsVV.VII,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可.
a.将GetFileName()中的如下代码:
//动态文章
if($cfg_rewrite==Y)
{
return$GLOBALS["cfg_plus_dir"]."/view-".$aid.-I..html;
}
替换为
//动态文章
if($cfg_rewrite==Y)
{
return"/archives/view-".$aid.-I..html;
}
将文章页默认的/plus/view-I.-I..html链接格式改为/archives/view-I.-I..html,这个随个人喜欢,不作更改也行.
b.将GetTypeUrl()中的如下代码:
//动态
$reurl=$GLOBALS[cfg_phpurl]."/list.php?tid=".$typeid;
替换为
//动态
$reurl="/category/list-".$typeid.".html";
这步必须修改,即让你的频道或是列表页URL变更为/category/list-I..html形式.
III.DedeCms列表分页伪静态
打开/include/arc.listview.class.php,找到获取动态的分页列表GetPageListDM()函数末尾处:
I.$plist=str_replace(.php?tid=,-,$plist);
替换为
$plist=str_replace(plus,category,$plist);
//将默认的plus替换成category
$plist=str_replace(.php?tid=,-,$plist);
将列表分页默认链接格式/plus/list-I.-II-I..html修改为/category/list-I.-II-I..html,这步也可以不作更改.
IV.DedeCms文章分页伪静态
打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾片:
I.$PageList=str_replace(".php?aid=","-",$PageList);
替换为
$plist=str_replace(plus,archives,$plist);
//将默认的plus替换成archives
$PageList=str_replace(".php?aid=","-",$PageList);
这步不作修改也可以,只是个人喜好问题.
V.DedeCmsTAG标签伪静态
DedeCms默认的TAG标签URL,形如/tags.php?/dedecmsV.VII/,非常之难看.打开/include/taglib/tag.lib.php,找到lib_tag()函数下的:
I.$row[link]=$cfg_cmsurl."/tags.php?/".urlencode($row[keyword])."/";
替换为
I.$row[link]=$cfg_cmsurl."/tags/".urlencode($row[keyword])."/";
到这里,TAG标签URL中的.php?"号就去掉了.
VI.DedeCms搜索伪静态
DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的URL就特麻烦,伪静态规则匹配复杂.随州SEO就偷下懒,将搜索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?"即可.
VII.DedeCms问答伪静态
问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browser.php.question.php以及include目录下的common.inc.php.functions.inc.php都需要简单修改才可以匹配伪静态规则.
注意I.点,DedeCmsVV.VII问答模块整体升级了,之前的规则已经不适用了,以后会专门写个教程供大家参考的.
VIII.DedeCms伪静态规则
依照上面的步骤修改完毕,接下来配置好你的伪静态规则,DedeCms全站伪静态就完美实现了.
I.)IIS伪静态
打开httpd.ini文件,加入如下规则:
#首页伪静态规则,如果不使用动态首页,请勿必删除这I.行,否则打开首页会出现死循环
RewriteRule^(.*)/index.html$I./index.php[I]
#列表页伪静态规则
RewriteRule^(.*)/category/list-([0-IX]+).html$I./plus/list.php?tid=$II[I]
RewriteRule^(.*)/category/list-([0-IX]+)-([0-IX]+)-([0-IX]+).html$I./plus/list.php?tid=$II&TotalResult=$III&PageNo=$IV[I]
#文章页伪静态规则
RewriteRule^(.*)/archives/view-([0-IX]+)-([0-IX]+).html$I./plus/view.php?arcID=$II&pageno=$III[I]
#搜索伪静态规则
RewriteRule^(.*)/search.html(?:(?.*))*$I./search.php?$II[I]
#TAG标签伪静态规则
RewriteRule^(.*)/tags.html$I./tags.php[I]
RewriteRule^(.*)/tags/(.*)(?:(?.*))*$I./tags.php?/$II[I]
RewriteRule^(.*)/tags/(.*)/(?:(?.*))*$I./tags.php?/$II/[I]
RewriteRule^(.*)/tags/(.*)/([0-IX])(?:(?.*))*$I./tags.php?/$II/$III[I]
RewriteRule^(.*)/tags/(.*)/([0-IX])/(?:(?.*))*$I./tags.php?/$II/$III/[I]
#问答伪静态规则,适用于DedeCmsVV.III-V.VI版本,需要修改几处程序
RewriteRule^(.*)/post.html$I./post.php[I]
RewriteRule^(.*)/type.html$I./type.php[I]
RewriteRule^(.*)/question-([0-IX]+).html$I./question.php?id=$II[I]
RewriteRule^(.*)/browser-I.-([0-IX]+).html$I./browser.php?tid=$II[I]
RewriteRule^(.*)/browser-II-([0-IX]+).html$I./browser.php?tidII=$II[I]
RewriteRule^(.*)/browser-I.-([0-IX]+)-([0-IX]+).html$I./browser.php?tid=$II&page=$III[I]
RewriteRule^(.*)/browser-II-([0-IX]+)-([0-IX]+).html$I./browser.php?tidII=$II&page=$III[I]
RewriteRule^(.*)/browser-([0-IX]+).html$I./browser.php?lm=$II[I]
RewriteRule^(.*)/browser-I.-([0-IX]+)-([0-IX]+).html$I./browser.php?tid=$II&lm=$III[I]
RewriteRule^(.*)/browser-II-([0-IX]+)-([0-IX]+).html$I./browser.php?tidII=$II&lm=$III[I]
II)Apache伪静态
打开.htaccess文件,加入如下规则:
#提供部分规则作参考
RewriteRule^category/list-([0-IX]+).html$/plus/list.php?tid=$I.
RewriteRule^category/list-([0-IX]+)-([0-IX]+)-([0-IX]+).html$/plus/list.php?tid=$I.&totalresult=$II&PageNo=$III
RewriteRule^archives/view-([0-IX]+)-([0-IX]+).html$/plus/view.php?arcID=$I.&pageno=$II
这篇文章的Apache伪静态规则部分是没有完成的,大家可以根据IIS的伪静态规则进行完善.至此,织梦DedeCMSV.VII的全站伪静态就完成了.建议就使用织梦的生成的静态文件即可,没必要进行伪静态.
原文链接:http://www.jxszl.com/biancheng/dedecms/75024.html
热门阅读