教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 开源代码 > cms教程 >

去掉phpcms v9的伪静态地址中的catid参数

时间:2012-09-03 16:44来源:未知 作者:ken 点击:

phpcms v9的动态链接是必需带catid的,这就决定了伪静态参数中也要带catid的参数(如果没有就无法rewrite重定向到对应的动态链接),按照这种url布属,如果哪天我们把内容改变了栏目,那原来的url就会改变,这是相当危险的事,因为没有谁能保证到时不会改变栏目,对吧?

那有没有办法让phpcms v9伪静态的url不带catid呢?答案是有的。

phpcms 在同一个模型下的各个不同栏目里的内容对应catid是可以固定用模型的catid替代的。比如,你在国内(对应catid=6)的文章模型里有新闻(对应catid=9)和笑话(对应catid=10)两个栏目,发布到这几个栏目下的文章的链接对应的catid是不同的。

直接发到国内模型:

index.php?m=content&c=index&a=show&catid=6&id={$id}&page={$page}

发布到栏目新闻的文章:

index.php?m=content&c=index&a=show&catid=9&id={$id}&page={$page}

发布到栏目笑话的文章:

index.php?m=content&c=index&a=show&catid=10&id={$id}&page={$page}

虽然是不同,但是我们都可以用模型的catid来代替,

直接发到国内模型文章:

index.php?m=content&c=index&a=show&catid=6&id={$id}&page={$page}

发布到栏目新闻的文章:

index.php?m=content&c=index&a=show&catid=6&id={$id}&page={$page}

发布到栏目笑话的文章:

index.php?m=content&c=index&a=show&catid=6&id={$id}&page={$page}

既然可以这样,那我们就可以用不带catid的伪静态了

1、先到后台添加不带catid的伪静态,如我添加的例子如下

RL规则名称 : show
模块名称 : 内容模块
是否生成静态? : 否
URL示例 : content-1-1.html
URL规则 : content-{$sid}.html|show-{$sid}-{$page}.html

2、.htaccess把内容重写的规则改为:

RewriteRule ^content-([0-9]+)-?([0-9]*)\.html$ index.php?m=content&c=index&a=show&catid=6&id=$1&page=$2

注意呀,上面catid=6是你的模型的catid,不是一成不变的。所以图片模型的伪静态还要改,假设图片模型对应的catid=7,可以这样改:

RL规则名称 : show
模块名称 : 内容模块
是否生成静态? : 否
URL示例 : pic-1-1.html
URL规则 : pic-{$sid}.html|show-{$sid}-{$page}.html

.htaccess重写规则再添加一条

RewriteRule ^pic-([0-9]+)-?([0-9]*)\.html$ index.php?m=content&c=index&a=show&catid=6&id=$1&page=$2

其他模型相应就按照这样的思路加就是了,这个方法可以有效去掉phpcms v9伪静态url带catid的不足,以后可以随便改变栏目url地址也会保持不变,但是不能改变模型。

(责任编辑:ken)
TAG标签: 伪静态 V9 phpcms 参数
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容