美文网首页
Nginx下的帝国CMS6.6Gbk与7.0Gbk版Tags伪静

Nginx下的帝国CMS6.6Gbk与7.0Gbk版Tags伪静

作者: 衣咸 | 来源:发表于2017-01-05 14:01 被阅读42次

    帝国Cms所做的一个网站近日从2003服务器换到Linux下的LNMP环境后之前正常的Tag伪静态打不开了,后台的搜索信息也不起作用了——一搜索所有的文章全出来了,就连编辑文章时编辑界面的表单里面显示的全是空白字段。Nginx1.8版本与Php-FPM环境,苦逼的后端哦,经历熬夜的奋斗才发现其实php5.4+并不支持帝国ecms6.6,因为几个不支持的函数的原因。童鞋们,为了世界和谐多活几天的话就不要在这个环境再折腾了,原本一直以为是Nginx对中文URI参数不支持的原因,升级到帝国cms7.2Gbk版本后问题立马解决。

    升级后的帝国cms7.2版本的Tags相关中文URL伪静态不需要再像6.6的版本那样需要手动改文件了,直接在后台就能设置伪静态的表现形式,只需要自己再配一个.conf文件就行了。但实现后的Tags伪静态的效果并不完美,主要问题在于相关Tag列表页并没有一个符合Seo规范的首页路径,而是用的带有分页参数的首页,如下:
    http://www.xend.live/tags/示例TAG_1.html
    而我们理想的效果为目录的方式,但又不能丢掉分页功能,如下:
    http://www.xend.live/tags/示例TAG/

    可以通过修改帝国CMS的源文件来实现,分两步走。

    一、后台设置Tags伪静态实现的具体规则

    设置为../taglist/[!--tagname--]/[!--page--].html即可

    36020160407002124953

    二、加入伪静态规则到Nginx网站配置文件

    我们要先修改网站的配置文件,具体配置文件的地址一般为你自己的网站名,我的是在/etc/nginx/conf.d/www.xend.live.conf
    在文件中找到如下区块:

    location / {
        root   /mnt/www/www.xend.live;
        index  index.shtml index.html index.htm index.php;
    

    在上面的代码下边另加一行,输入如下伪静态规则:

    rewrite ^/tags/(.+?)/(.+?).html$ /e/tags/index.php?tagname=$1&page=$2 last;
    rewrite ^/tags/(.+?)$ /e/tags/index.php?tagname=$1&page=$2 last;
    

    三、修正Tags集合列表页和文章内页调用Tag时的Tag网址

    我们需要修改的是/e/class/connect.php文件的1173行:

    $r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagname,0),$public_r['rewritetags']);
    

    改为

    $r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]','.html'),array($tagname,'',''),$public_r['rewritetags']);
    

    四、修正Tags文章列表页的分页显示效果

    同样修改/e/class/connect.php文件的1251行,找到下面这行代码:

    $url=str_replace('[!--page--]',$page,$r['pageurl']);
    

    在上面这行代码的后面加入接下来的代码:

    $url=str_replace('/0.html','/',$url);
    

    保存,上传。
    至此,恭喜了,Nginx下的伪静态配置已经圆满完成!

    Tag:ecms,Nginx,伪静态,帝国cms
    发布时间:2015年08月06日
    博客被黑,挪窝简书安家……

    相关文章

      网友评论

          本文标题:Nginx下的帝国CMS6.6Gbk与7.0Gbk版Tags伪静

          本文链接:https://www.haomeiwen.com/subject/bhrzvttx.html