网上很多 phpcms的tag伪静态url都是写成.html结尾的形式。现在来告诉大家如何写成/**/目录结构的形式
首先将TAG模块伪静态设置方法如下:
1、在后台添加url规则
在后台——扩展——url规则里添加一个新的url规则用于tag,如下所示:
{$tag}_{$page}
添加完成后记住前面的id号,比如我创建的ID号是31。
2、在系统tag.php代码里写入url规则
打开phpcms/modules/content/tag.php文件,找到:
1,$infos = $keyword_data_db-<listinfo($where, '`id` DESC', $page, $pagesize);
这一行上面添加以下代码:
1,$urlrules = getcache('urlrules','commons');
2,$urlrule = $urlrules[31];//调用url规则
然后找到如下代码:
1,$infos = $keyword_data_db-<listinfo($where, '`id` DESC', $page, $pagesize);
将其修改成如下代码:
1,$infos = $keyword_data_db-<listinfo($where, '`id` DESC', $page, $pagesize,'','9',$urlrule,Array('tag'=<urlencode($tag)));
目的就是往查询语句里面添加前面设置的url规则。
3、修改全站的内容页模板,如果有多个不同的模型栏目使用了不同的内容页模板也需要全部修改。我的网站里面就有好多不同的内容模板,改的时候就需要全部改掉。
打开phpcms\templates\default\content\show.html,找到:
1,{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}
改成
1,/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://域名/tag/phpcms
如果点击tag关键词之后tag页面显示的关键词不一样,可以去掉$infos = $keyword_data_db-<listinfo($where, '`id` DESC', $page, $pagesize,'','9',$urlrule,Array('tag'=<urlencode($tag)));里面的urlencode函数。
来源:oschina
链接:https://my.oschina.net/u/4421700/blog/4899087