15621857753

phpcmsV9伪静态提供"不存在此关键字"解决办法

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2021-06-26

本文介绍了phpcmsV9伪静态提供 "不存在此关键字 "解决办法,今天把网站从VPS换到了虚拟主机,折腾一番,也发现不少问题,不过好在都一一解析了。最困难是解决伪静态,对此不太熟悉,配完规则提示不存在此关键字,一起看看解决办法。

今天将PHPCMSV9换了个服务器,从VPS换到了虚拟主机,其实用到了全站伪静态,包括列表页、内容页和TAG页面的规则。

分享一下我使用的规则:

RewriteEngine On
RewriteRule ^(.*)content-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)show-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)list-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=lists&catid=$2&page=$3
RewriteRule ^tag-(.*)-([0-9]+).html index.php?m=content&c=tag&a=lists&tag=$1&page=$2

我用的是IIS服务器,上面也可以用在APACHE,放到.htaccess就可以了。

使用的时候,发现列表页和文章页都正常,就是TAG伪静态出现问题,提示不存在此关键字。

最后搜索了很多资料,终于解决了。

解决办法如下:

打开 phpcms\modules\content 下的 tag.php文件,找到 public function lists方法,大约在28行左右:

在 $tag = safe_replace(addslashes($_GET['tag']));下添加下面两行编码转换就可以了:

$tag = urldecode(urldecode($tag));
$tag = iconv("utf-8","gb2312",$tag);

这样就可以了。所有问题全部解决。

展开