当前位置: 首页 >> 网站程序 >> 文章正文

phpcms v9添加{$prefix}自定义html文件名前缀功能

336x280

phpcms v9添加{$perfix}自定义html文件名功能
在phpcms2008版本中,有一个非常好用的功能就是 {$perfix}自定义html文件名前缀,不论是在伪静态还是在生产html中,使用这个功能均能对网站SEO优化和url友好度有着重要的关系.
且看我做的几个关键字:
金骏眉:http://www.google.com.hk/search?client=aff-cs-360se&ie=UTF-8&q=%E9%87%91%E9%AA%8F%E7%9C%89
金骏眉价格:http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1280&bih=596&q=%E9%87%91%E9%AA%8F%E7%9C%89%E4%BB%B7%E6%A0%BC

phpcms每次升级都是改动严重,不论是模版调用标签还是在功能上,经常变化,刚刚一批人摸透了其模版标签使用,又升级又换了,于是造成了国内优秀的php CMS里,phpcms的口碑相当差,phpcms的模版也是最少的,自然也就相当少人用,想必和phpcms的人事变动有关.
接下来讲一下如何在phpcms v9添加{$perfix}自定义html文件名功能 :

第一步:添加字段:
在后台” 内容 > 内容相关设置 > 模型管理 > 文章模型字段管理 >添加字段”,添加一个”prefix”的字段,具体名称和设置之类可自己根据需要来调整,我的设置如图:

phpcms v9添加自定义字段 prefix

phpcms v9添加自定义字段 prefix

第二步:在phpcms/modules/content/classes/ url .class.php 文件的 public function show函数,即55行的array添加$prefix查询。注意有两个,一个是{$prefix},一个是$prefix.
$urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$prefix}'
,'{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$prefix,$page),$urlrule);

第三步:在url规则中使用,扩展 > URL规则管理 > 添加或修改URL规则时候添加{$prefix},例如我就添加了一个用于伪静态的url规则:
{$catdir}-{$catid}/{$prefix}-{$id}.html|{$catdir}-{$catid}/{$prefix}-{$id}-{$page}.html
因为新版的phpcms V9的show页面有catid参数,如果像我习惯使用rewrite的朋友要考虑添加{$catid},而生成html的话无需考虑这个参数.
URL示例:dahongpao-5/wuyishan-lim-86.html
搞定!
因为我一直是使用伪静态,没有生成的,所以没有发现伪静态会出现不能实现的问题.
对此的解决办法是,修改phpcms/modules/content/create_html.php的277行、354行和512行的代码加上$r['prefix'])查询:
将这三行代码:$urls = $this->url->show($r['id'], ”, $r['catid'],$r['inputtime']);
修改成:$urls = $this->url->show($r['id'], ”, $r['catid'],$r['inputtime'],$r['prefix']);

在实验phpcms v9的url规则中,发现category和list页面的URL规则将无法生成使用{$categorydir}和{$catdir} ,这应该算是一个bug,具体解决方法得研究研究.

建议官方早日恢复phpcms v9的{$perfix}自定义html文件名前缀功能,感谢phpcms版主化蝶自在飞的相关办法.
淡淡风谈及这个功能的重要性:url地址在搜索引擎排名中占了极其重要的权值,因此通过URL规则DIY可以进行搜索优化。另外进行系统迁移时可能原来系统的url规则与phpcms系统自带的规则不一致,迁移后就会导致原来的地址失效而使网站访问量下降。
为了解决这些问题,phpcms2007默认提供了4套url规则,同时还支持URL规则DIY。您只要编辑 ./include/urlrule.inc.php ,按照已有的例子添加新的url规则,那么当进后台的频道和栏目修改的时候在url规则下拉框就能看到自己定义的规则了。选择自定义url规则并应用,然后重新生成即可。

3 Responses to “phpcms v9添加{$prefix}自定义html文件名前缀功能”

  1. 时尚博客 说:

    搜索就来到这了,刚换个博客模板,逛逛博客找找灵感!

  2. johnnieyan 说:

    你可以测试下 批量生成内容页 你这个定义的文件名能否生成。

  3. 倾人网 说:

    你不说我还不知道PHPCMS把这功能去掉了,不过还好,有你在,而且将它分享了出来

发表评论