dedecms织梦程序,需要解决tags静态问题,所有的tags关键字都是"tags.php?/关键字/"这样展示的,这样子不够友好,希望实现静态化或者伪静态。
于是搜索相关的文档然后加以修改页面,确实找到解决办法,但是这里遇到的问题一并整理出来,这是我来解决dedecms织梦程序实现tags伪静态的办法,我没有生成静态化的问题是这样几万数据可能会导致挂掉,还是用伪静态比较妥当。
第一、设置dedecms全站伪静态
首先我们到系统参数-核心中设置全站伪静态。同时,我们还需要给站点设置伪静态规则,这里他是用的nginx,我们这里就用dedecms nginx伪静态规则。
location / {
rewrite "^/index.html$" /index.php last;
rewrite "^/list-([0-9] )\.html$" /plus/list.php?tid=$1 last;
rewrite "^/list-([0-9] )-([0-9] )-([0-9] )\.html$" /plus/list.php?tid=$1&totalresult=$2&pageno=$3 last;
rewrite "^/view-([0-9] )-1\.html$" /plus/view.php?arcid=$1 last;
rewrite "^/view-([0-9] )-([0-9] )\.html$" /plus/view.php?aid=$1&pageno=$2 last;
rewrite ^(.*)/tags\.html $1/tags.php;
rewrite ^(.*)/tags/(.*).html $1/tags.php?/$2;
}
这个很重要,尤其是最后两行关于tags的。
第二、修改配置文件
我们需要到"include/taglib"文件中找到"tag.lib.php"。
找到:
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
然后修改成:
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
如果以后还需要更换,或者不确定的话,可以将原来一句代码屏蔽。
然后我们再去刷新整站,可以看到所有的tags变成伪静态页面"tags/关键字.html"这样的格式。