当前位置: 首页 >> 推荐 >> 文章正文

Phpcms的Tag伪静态完美解决方案(兼容IIS 无须Rewrite)

336x280

 TAG静态规则之前发布了一个版本(http://blog.myes.cn/phpcms2008-tag-url/ 类似于”tag/关键字/” 的样式),原来的版本存在分页失效问题,而且在IIS主机上也不能用,配置很麻烦.很多朋友也是用的一头雾水,俺的QQ也有不少询问.
     本着AD光荣的传统,赚鲜花PC币的原则,我重新发帖,其实解决方案之前就放出来了,还得感谢化蝶给我加分. 可是大多朋友都熟视无睹,我就再发一次贴吧!
  所以请各位用以下方式实现tag伪静态,参考了dede的方式,出来的格式:
http://www.lincha.com/tag.php?/%E5%A4%A7%E7%94%B0/  ——–dedecms的tag伪静态方式tag.php?/关键字/,而且很好地解决了tag分页问题.
http://www.lincha.com/tag.php?/%E8%8C%B6%E6%96%87%E5%8C%96/   
http://www.lincha.com/tag.php?/culture/  ——-分页问题彻底解决
更多tag伪静态请看:http://www.lincha.com/tags.php

  再次请各位受益的朋友感谢一下化蝶,ylmotol7,易寒,首富及其他活跃版主,如果他们解答了你的一个问题,请说一声谢谢,送一朵花给他们.

第一步:
修改成红色字体部分,即tag url输出格式:
include\fields\keyword\output.inc.php

function keyword($field, $value)
{
     if($value == ”) return ”;
  $v = ”;
  $tags = explode(’ ‘, $value);
  foreach($tags as $tag)
  {
   $v .= ‘<a href=”tag.php?/’.urlencode($tag).’/“>’.$tag.’</a>’;
  }
  return $v; 
}

第二步:根目录的tag.php添加三行代码:

$tag = trim($_SERVER['QUERY_STRING']);
$tags = explode(’/',
$tag);
$tag = urldecode($tags[1]);

即将根目录的tag.php修改为以下代码:
<?php
require dirname(__FILE__).’/include/common.inc.php’;
$tag = trim($_SERVER['QUERY_STRING']);
$tags = explode(’/', $tag);
$tag = urldecode($tags[1]);
$keyword = load(’keyword.class.php’);
$data = $keyword->get($tag);
if(!$data) showmessage(”TAG: $tag 不存在.”);
$keyword->hits($tag);
extract($data);
$head['title'] = $tag.’-’.$PHPCMS['sitename'];
include template(’phpcms’, ‘tag’);
?>

第三步:
  统一网站的tag链接,
  把全站模板里面的 <a href=”tag.php?tag={urlencode($r[tag])}”>{$r[tag]}</a>全部修改为<a href=”tag.php?/{urlencode($r[tag])}/”>{$r[tag]}</a>    意思也很明白,就是把tag.php?tag=**改成了tag.php?/**/
  一般来说涉及tag主要有三个页面,自己把握:
1;tag列表页面模板(./templates/default/phpcms/tags.html);
2, 首页(templates/default/phpcms.html),
3;文章页面(templates/default/show.html),

   之前采用我主题修改的tag伪静态可以采用.htaccess跳转

  1. RewriteRule ^tag/(.*)/ tag.php?/$1/ [R=301,L]

以上新样式的tag静态化模仿dedecms的格式,解决了分页问题.而且在Google,bing中的收录排名非常出色非常高.推荐修改!

发表评论