|
这也是我在使用dedecms“图集”功能的过程中发现的一个问题,想实现图集分页的伪静态功能,但是按照论坛中方法设置完伪静态规则后点击下一张图集还是动态页面访问,而且还是404错误页面....搜遍了论坛也没找到修改方法,后来还是自己研究出来了,最终实现dedecms的图集以“view-aid-pageid.html”的形式访问。 因为图片站一般都要发布相当多的图片,每个图集都要生成HTML静态页的话无意要耽误很多时间,另外也会额外占用更多的CPU使用率,自己有服务器的可能无所谓,但是vps主机的话.....好了,废话不说,来看看如何实现。首先需要修改dedecms默认的图集内容页模板---“article_image.htm”,在此页中有一段javascript代码,我们需要修改的就是这个代码。 //上一张 function dPlayPre(){ if(npage<2) { alert("这是第一页"); } else { if(npage==2) { if(namehand!='') location.href = namehand+shortname; else location.href = "view.php?aid={dede:field name='id'/}"; } else if(displaytype=='st' && namehand!='') { location.href = namehand+"_"+(npage-1)+shortname; } else { location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage-1); } } } //下一张 function dPlayNext() { if(npage==totalpage) { alert("没有了哦"); } else { if(displaytype=='st' && namehand!='') location.href = namehand+"_"+(npage+1)+shortname; else location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage+1); } }将上段代码中的黄色字体部分修改成下段中的代码,一共需要修改3个地方。 alert("这是第一页"); } else { if(npage==2) { if(namehand!='') location.href = namehand+shortname; else location.href = "/view-{dede:field name='id'/}-"+(npage-1)+".html"; } else if(displaytype=='st' && namehand!='') { location.href = namehand+"_"+(npage-1)+shortname; } else { location.href = "/view-{dede:field name='id'/}-"+(npage-1)+".html"; } } } //下一张 function dPlayNext() { if(npage==totalpage) { alert("没有了哦"); } else { if(displaytype=='st' && namehand!='') location.href = namehand+"_"+(npage+1)+shortname; else location.href = "/view-{dede:field name='id'/}-"+(npage+1)+".html"; } }改完之后保存并覆盖上传原模板文件就可以了。sorry。之前忘记说明了,按照以上方法修改完之后还要添加相应伪静态规则的,不然访问还是404错误。因为我自己用的是nginx web server,如果你用的是Apache或者IIS的话自己按照规则改一下就行了。Nginx伪静态规则rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;关键词:dedecms伪静态 |
|