dedecms 如何设置全站伪静态?
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔在上一篇文章中,通过调整dedecms
的后台设置,把原本纯正的静态html
系统,变成了动态php
的网站。好吧,需求就是这么变态,现在的需求是,把dedecms
变成伪静态的。就是说,表面上看是html
的文件,但是实际上是动态的php
文件。
事实上,很多cms
系统,都是支持伪静态设置的。在后台里面点击一个选项,然后设置下nginx
/apache
/iis
的rewrite
配置文件,就可以完成伪静态了。但是,伪静态这个需求,对于dedecms
来说,是一件很痛苦的事情。
本文测试环境:php72
/dedecmsV5.7SP2
。
设置动态浏览
因为伪静态的实质上还是动态。所以,需要先在dedecms
的后台,设置为动态浏览。那么,大家可以查看苏南大叔的这篇文章。
dede
后台设置伪静态
路径如图所示,伪静态的选项,有些隐蔽,不是很好找。路径是:系统=》系统基本参数=》核心设置=》是否使用伪静态。
如果大家想知道,这个官方开启伪静态之后的逻辑,可以全局搜索cfg_rewrite
,就可以找到对应的url变化逻辑。
不过,苏南大叔这边实验的时候,这个后台的设置项目,似乎是没有生效。想要生效的话,还需要手动修改/data/config.cache.inc.php
中的$cfg_rewrite
为Y
。修改之后,原来页面中的一系列.php
文件url就又变成了.html
文件了。
如果有些链接地址404
了,请检查是否设置了对应文档或者栏目动态浏览
,是否正确设置了rewrite
规则。
设置rewrite
规则
苏南大叔这边的实验是以nginx
为基础的。当然,鉴于dede
的用户特性,很有可能您是iis
或者apache
的。那么,请自行百度相关规则吧。对于apache
用户,个人还可以表示理解。而iis
带php
的用户,苏南大叔暂时表示无法理解。
location / {
index index.php index.html index.htm;
rewrite "^/index.html$" /index.php last;
rewrite ^/plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1;
rewrite ^/plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3;
rewrite ^/plus/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1;
rewrite ^/plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2;
}
测试伪静态结果
使用如下命令,使得伪静态规则生效。
nginx -t
nginx -s reload
然而,官方的这个伪静态规则的设置结果,非常的差强人意。菜单栏中的链接,栏目更多字样的链接,以及标签tag链接,都没有发生变化。只有列表的分页和文章页面的地址的伪静态生效了。
结论
想要更高端的伪静态效果,就需要更改dede
的源码了。如果您想知道如何更改dede
源码,使得伪静态生效。请查看苏南大叔的后续文章内容。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。