phpcms v9內容管理系統可以方便建立網站,並且生成靜態化,但是列表頁往往采取偽靜態,因為列表頁太多每發一篇文章就生成一遍靜態效率太低,phpcms列表頁及分頁偽靜態規則如何設置呢?
phpcms列表頁偽靜態后台設置
在phpcms后台擴展,url規則管理中,新增一條category規則:
url規則名稱:category
模塊名稱:內容模塊
是否生成靜態?:選否
URL示例:toolslist/1/,分頁toolslist/index_2.html
URL規則:/toolslist/{$catid}/|index_{$page}.html
可用變量:父欄目路徑: {$categorydir},欄目目錄:{$catdir},年:{$year},月:{$month},日:{$day},ID:{$id},分頁:{$page}
這個列表頁偽靜態規則是,第一頁是/toolslist/1/,從第二頁開始分頁的url規則是/toolslist/index_2.html,/toolslist/index_3.html,以此類推。
在phpcms偽靜態列表頁規則中,如果第一頁和后面的列表分頁url形式相同,則只需填一個規則,如果第一頁和分頁的url不同,則填兩個規則,用“|”隔開。如本例中的/toolslist/{$catid}/|index_{$page}.html
apache后nginx中設置偽靜態
在后台設置好后,還要在服務器(如果是nginx)或者htaccess文件(apache)中加入路由規則。
以apache環境為例,偽靜態設置在htaccess文件中,寫法如下:
RewriteRule ^toolslist/1/index_([0-9]+).html index.php?m=content&c=index&a=lists&catid=25&page=$1 RewriteRule ^toolslist/1/$ index.php?m=content&c=index&a=lists&catid=25
前面用正則表達式代替數字,后面是對應的動態地址,用$1,$2代表正則匹配到的數字。
經過這樣的設置后,phpcms列表頁及分頁的偽靜態規則就設置好了。