dedecms tags伪静态完美解决办法

作者:1724408955 hihi 来源:用户投稿 浏览: 2013-11-7 15:31:18 字号:
[摘要]今天教大家的dedecms教程是:如何解决一个网站的tags标签静态化问题。整个过程总共分为4步,通过替换和添加其中的一些代码就成功的解决tags标签静态化的问题了。
  第3步:

  设置伪静态规则:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="weather1" stopProcessing="true">
<match url="tags/([^-]+).html$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/tags.php?/{R:1}" appendQueryString="false" />
</rule>
<rule name="weather2" stopProcessing="true">
<match url="tags/([^-]+)-([0-9]+).html$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/tags.php?/{R:1}/{R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

  把以上内容保存为:web.config  放到网站根目录!

  第4步:

  生成文章,浏览!大功告成?错,有可能你会出现以下错误!

  系统无此标签,可能已经移除!

  你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>>
  如果你的浏览器没反应,请点击这里...

  解决办法如下:

  在网站根目录下找到tags.php 此文件,将以下代码替换掉:

$tag = trim($_SERVER['QUERY_STRING']);

  换成

$tag = strtolower(trim($_SERVER['QUERY_STRING']));

  出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.php中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了
  方法:

  1.把以下代码加入到根目录下tags.php中的18行下面,也就是if(isset($tags[2])) $PageNo = intval($tags[2]);下面哦:

function is_utf8($tag) 
{
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$tag) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$tag) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$tag) == true)
{
return true;
}
else
{
return false;
}
}

  2.在第25行上面加入以下语句,也就是在$tag = FilterSearch(urldecode($tag));上面加入,记得这里是上面哦!

if(is_utf8($tag)==1) { $tag = iconv("utf-8","gbk",$tag); }

  这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk;

  到此,tags伪静态问题全面完美解决!

  加入一个测试页面:

  http://www.3qshop.com/tags/%B6%AB%DD%B8%C8%FD%CF%E9.html

  • 软件大小:8.14MB
  • 软件类别:国产软件 | CMS建站
  • 软件语言:简体中文
  • 运行环境:PHP/Mysql
  • 软件授权:免费版
  • 更新时间:2015-6-19 9:42:25
  • 相关链接:Home Page

  • 软件大小:8.20MB
  • 软件类别:国产软件 | CMS建站
  • 软件语言:简体中文
  • 运行环境:PHP/Mysql
  • 软件授权:免费版
  • 更新时间:2015-6-19 9:36:44
  • 相关链接:Home Page

快捷键使用:上一页“←”,下一页“→”
内容导航
sssss
Tags: dedecms教程   tags伪静态  
责任编辑:lsw16
编辑推荐排行