phpcms2008 URL规则详解(正式版)

好像现在官方还没有出这个的教程,看看论坛很多人需要,就写了这个。根据后台 系统设置->相关设置->URL规则管理  所列的URL规则编写。

以下所用示例,请灵活修改。

示例栏目:

新闻news

|___国内china

|___国际inter

   |___美国usa

1、URL规则所用变量

{$catid}栏目id。例:形如1,10等

{$categorydir}栏目目录树(相对于phpcms安装目录)。例:如为一级目录则为/news/,二级目录为/news/china/,三级目录为/news/inter/usa

{$catdir}栏目目录。例:如为一级目录则为/news/,二级目录为/china/,三级目录为/usa/

{$year}   {$month}   {$day} 年月日。文章发布时间的年,月,日。

{$page}页码。文章分页时的页码。

{$fileext}静态页扩展名。为网站配置->生成的扩展名所定义。

{$contentid}文章id。

以下是专题模块用的

{$typeid}类别id

{$typedir}类别目录

{{$filename}专题名称

{$specialid}专题id

问吧,对于问吧,最好不要修改了

{$action}操作

2、URL规则数据库字段说明

模块:所属模块,目前有问吧,专题,phpcms。

URL规则名称:这个名称应该为URL规则应用的范围,如用于栏目页(目录),内容页等。一般会用到show(内容页),category(栏目页)

生成Html:是否生成html。关系到所写的URL规则。

URL规则/URL示例:这个就是本文重点要讲的了

3、应用示例

特别说明:定义url时,应为分页网址加上{$page}变量。两条规则用|隔开。

(1)官方演示

{$catdir}/index.{$fileext}|{$catdir}/{$page}.{$fileext}

{$categorydir}/{$year}/{$month}{$day}/{$contentid}.{$fileext}|{$categorydir}/{$year}/{$month}{$day}/{$contentid}_{$page}.{$fileext}

(2)一个例子

建立形如/news/article_1_2.html的规则

{$catdir}/article_{$contentid}.{$fileext}|{$catdir}/article_{$contentid}_{$page}.{$fileext}

如选目录树,则{$catdir}改为{$category}

(3)扩展功能(正式版未测试)

定义为动态时,所以栏目、内容页都为phpcms目录下/list.php?,/show?等形式,如果想让url规则为/news/show.php?id=,/news/index.php这个要怎么操作呢?

首先想到的是定义url规则,如

栏目页{$catdir}/index.php|{$catdir}/index.php?page={$page}

内容页{$catdir}/show.php?contentid={$contentid}|{$catdir}/show.php?contentid={$contentid}&page={$page}

定义完之后,问题来了,所建的目录下并没有index.php和show.php文件,怎么办?

把list.php复制到相应目录下,更名为index.php,show.php也做如上操作,这两个文件都在phpcms的目录里。

这时再看已经输入的内容,会提示出错,路径错误,改show.php第一句为

require ‘../include/common.inc.php’; 这个是根据一级目录改的

下面还有几个require,相应的改动一下就行了,我没改,也没有报错。改完之后再浏览(在后台,点文章标题)就可以打开了。

修改复制进去的index.php

第一句修改同上。因为自定义的URL规则是不带catid参数的,所以在$catid = intval($catid);改为$catid = 5(这里是你所要改的栏目的id,在栏目管理可以看到)。这时就可以看到了。

 

深夜写作,难免错误,如有请指出,谢谢。

phpcms2008 URL规则详解(正式版)》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注