Home  >  Article  >  php教程  >  phpcms TAG伪静态

phpcms TAG伪静态

PHP中文网
PHP中文网Original
2016-05-23 16:41:061886browse


看了网上很多的关于phpcms tag伪静态设置的文章,都是做成http://host/**.html的形式。个人还是比较喜欢类似http://host/tag/**的样式。TAG模块伪静态设置方法如下:

1、在后头添加添加url规则

在后台-<扩展-listinfo($where, &#39;`id` DESC&#39;, $page, $pagesize);

这一行上面添加以下代码:

$urlrules = getcache(&#39;urlrules&#39;,&#39;commons&#39;);

$urlrule = $urlrules[31];//调用url规则

然后再把

$infos = $keyword_data_db->listinfo($where, &#39;`id` DESC&#39;, $page, $pagesize);

改成

$infos = $keyword_data_db->listinfo($where, &#39;`id` DESC&#39;, $page, $pagesize,&#39;&#39;,&#39;9&#39;,$urlrule,Array(&#39;tag&#39;=<urlencode($tag)));

目的就是往查询语句里面添加前面设置的url规则。


3、修改全站的内容页模板,如果有多个不同的模型栏目使用了不同的内容页模板也需要全部修改。我的网站里面就有好多不同的内容模板,改的时候就需要全部改掉。

打开phpcms\templates\default\content\show.html,找到:

{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}

改成

/tag/{urlencode($keyword)}

修改分页标签,为的是标签搜索出来的列表url里面不出现0,
打开phpcms\templates\default\content\tag_list.html,把分页标签

{$pages}

改成

{str_replace("0","1",$pages)}

4、在.htaccess文件里加入URL规则

在网站的根目录的.htaccess文件(没有的自己建)加入以下URL规则

rewrite ^/tag/(.*)_([0-9]+) /index.php?m=content&c=tag&a=lists&tag=$1&page=$2;
rewrite ^/tag/(.*) /index.php?m=content&c=tag&a=lists&tag=$1&page=$2;
如果是单独的服务器请修改相应的配置文件。

最后显示出来的URL样式如下:http://www.xinchaoyue.com/tag/hp 
遇到的问题:
点击tag关键词之后tag页面收到的关键词不一样,在网上查了一下很多人说是编码的问题。测试转换编码无法解决问题。最后通过去掉$infos = $keyword_data_db-<listinfo($where, &#39;`id` DESC&#39;, $page, $pagesize,&#39;&#39;,&#39;9&#39;,$urlrule,Array(&#39;tag&#39;=<urlencode($tag)));里面的urlencode函数解决。
更多tag实例演示请到www.xinchaoyue.com查看。

                   

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn