一、Apache Web Server环境搭建的DeDeCMS,要实现Tag伪静态,需要使用.htaccess设置Rewrite规则,具体实现请按如下步骤操作。
1、进入dedecms后台,开启伪静态
2、打开目录 \include\taglib\tag.lib.PHP 文件
查找
$row['link'] = $cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
替换为
$row['link'] = $cfg_cmsurl.”/tags/”.urlencode($row['keyword']);
到一步,Tag的链接已经修改成tags/keywords的形式了。这种目录形式非常好,很利于收录,包括我们做长尾关键词优化。
3、设置apache Rewrite规则
新建.htaccess文件,具体内容为:
RewriteEngine On
RewriteBase /
RewriteRule ^tags/(.*)$ /tags.php?/$1
4、修改具体涉及到的模板页面中tags的导航,以便导航链接仍为根目录/tags.php
5、最后生成一遍全站,就成功了。
PS:在后台开启伪静态后,如果栏目页或内容页使用的是动态URL,则需要设置一下栏目页及内容页的.htaccess规则
如下:.
RewriteEngine On
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2
PS:以上操作过程中如果没有修改目录名(即tags.php),安上述操作即可实现Tag的伪静态;但由于tag这个词本身已在搜索引擎被人为降低权重,所以实际测试时我修改了目录名,于是暴露出一个新的问题:Tag页翻页的ULR规则是错误的;检查了部分代码,还是无法找到问题的根源,有可能是需要在.htaccess文件中补充一条rewrite规则,也可能是哪块的源代码没有修正为新的目录名称。
二、IIS Web Server环境搭建的DeDeCMS,要实现Tag伪静态,具体操作如下:
1、进入dedecms后台,开启伪静态
2、修改 /include/taglib/tag.lib.php
查找
//$row['link'] = $cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
修改为
$row['link'] = $cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”/”;
3、新建httpd.ini 文件,并设置重写规则
RewriteRule ^(.*)/tags\.html $1/tags\.php
RewriteRule ^(.*)/tags/(.*).html $1/tags\.php\?$2
摘自 bloghuman.com/dedecms-tag-urlrewrite-apache-iis/