如何實現phpcms v9_4X版本tag的僞靜態?

這兩個月來寫的文章愈來愈少了,不是懶,由於太忙了--爲客戶趕作網站。由於客戶指定要使用phpcms v9,還要求使用phpcms v9_42版本實現tag僞靜態,在接手的時候phpcms v9_42是最新版本,而如今phpcms官方已經發布phpcms v9_5.X了。對於phpcms v9實現tag僞靜態的實現方法,百度一下就會一大堆,但倒是phpcms v9_2X版本的,並且最終實現的結果是:域名/關鍵詞_6_1.html,我看得都以爲彆扭--下面我會把URL的尾巴砍得更短些。php

 

phpcms v9_42版本是目前(2013-10-29)最新的版本,相比於phpcms v9_2X的tag模塊的代碼,改動較大,因而乎,百度得來的phpcms v9_2X版本tag僞靜態的實現方法就OUT了。怎麼辦呢?下面我就把建站過程當中整理的phpcms v9_42版本下tag僞靜態的實現方法放出來,絕對是最新(2013.12.10)的了。html

 

TAG模塊僞靜態設置web

一、添加url規則測試

在後臺->擴展->url規則裏添加一個新的規則用於評論模塊,以下所示:網站

{$tag}_{$page}.html編碼

添加完成後記住前面的id號,好比32。url

 

二、在代碼裏寫入url規則spa

打開phpcms/modules/content/tag.php文件,找到:操作系統

1 $infos $keyword_data_db->listinfo($where'`id` DESC'$page$pagesize);

這一行往上面添加如下代碼:code

1 $urlrules = getcache('urlrules','commons');
2 $urlrule $urlrules[32];//調用url規則

而後再把

1 $infos $keyword_data_db->listinfo($where'`id` DESC'$page$pagesize);

改爲

1 $infos $keyword_data_db->listinfo($where'`id` DESC'$page$pagesize,'','9',$urlrule,Array('tag'=>urlencode($tag)));

目的就是往查詢語句裏面添加前面設置的url規則。

 

三、修改模板

打開phpcms\templates\default\content\show.html,找到:

1 {APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}

改爲

{APP_PATH}{urlencode($keyword)}_1.html

打開phpcms\templates\default\content\tag.html,把分頁標籤

1 {$pages}

改爲

1 {str_replace("_0.html","_1.html",$pages)}

四、在.htaccess文件里加入URL規則

在網站的根目錄的.htaccess文件(沒有的本身建)加入如下URL規則

1 RewriteRule ^(.*)_([0-9]+).html index.php?m=content&c=tag&a=lists&tag=$1&page=$2

最後顯示出來的URL樣式以下:http:/w3note.com/關鍵詞_1.html

 

可能會遇到的問題

在操做系統:Linux ,點擊標籤時會出現找不到此關鍵字的提示,緣由是轉碼問題,而在本地測試則沒有這種狀況。

 

解決的辦法

打開phpcms/modules/content/tag.php

找到

1 $tag = safe_replace(addslashes($_GET['tag']));

在其下面添加以下代碼

1 $tag = iconv("gb2312","utf-8",$tag); //轉編碼

若是還不行,不防試着調換"gb2312","utf-8"的位置。

轉載:w3note.com/web/133.html

相關文章
相關標籤/搜索