phpcms v9内容管理系统可以方便建立网站,并且生成静态化,但是列表页往往采取伪静态,因为列表页太多每发一篇文章就生成一遍静态效率太低,phpcms列表页及分页伪静态规则如何设置呢?
phpcms列表页伪静态后台设置
在phpcms后台扩展,url规则管理中,新增一条category规则:
url规则名称:category
模块名称:内容模块
是否生成静态?:选否
URL示例:toolslist/1/,分页toolslist/index_2.html
URL规则:/toolslist/{$catid}/|index_{$page}.html
可用变量:父栏目路径: {$categorydir},栏目目录:{$catdir},年:{$year},月:{$month},日:{$day},ID:{$id},分页:{$page}
这个列表页伪静态规则是,第一页是/toolslist/1/,从第二页开始分页的url规则是/toolslist/index_2.html,/toolslist/index_3.html,以此类推。
在phpcms伪静态列表页规则中,如果第一页和后面的列表分页url形式相同,则只需填一个规则,如果第一页和分页的url不同,则填两个规则,用“|”隔开。如本例中的/toolslist/{$catid}/|index_{$page}.html
apache后nginx中设置伪静态
在后台设置好后,还要在服务器(如果是nginx)或者htaccess文件(apache)中加入路由规则。
以apache环境为例,伪静态设置在htaccess文件中,写法如下:
RewriteRule ^toolslist/1/index_([0-9]+).html index.php?m=content&c=index&a=lists&catid=25&page=$1
RewriteRule ^toolslist/1/$ index.php?m=content&c=index&a=lists&catid=25
前面用正则表达式代替数字,后面是对应的动态地址,用$1,$2代表正则匹配到的数字。
经过这样的设置后,phpcms列表页及分页的伪静态规则就设置好了。