有時候我們在phpcms的使用過程中,需要自定義一些規(guī)則方便seo目錄要求等,這里簡單分享下,方便需要的朋友
一、概述
自定義url規(guī)則,首先要建立自己的URL規(guī)則,首先的理解一些定義和變量含義。首先進(jìn)入URL規(guī)則管理這里,你會看到如下內(nèi)容(進(jìn)入方法:“擴(kuò)展”-》“RUL規(guī)則管理”—》“管理RUL規(guī)則”)
在、問吧、專題、等等
也就是說你下一步建立的RUL規(guī)則是要應(yīng)用在哪個模塊上,那你就要選者哪個。在這里特別要提示一下的是,你在建立 URL規(guī)則的時候不要選哪個“不限”。本然按照PHPCMS當(dāng)初的意思是可以應(yīng)用與任何模塊,但是我實際操作當(dāng)中,發(fā)現(xiàn)如果選者了不限,那你在其他模型里 面是看不到你選者的URL規(guī)則。
二、名稱
名稱這里PHPCMS分 category(列表頁),show(詳細(xì)頁),htmlshow(問吧詳細(xì)頁),htmlcategory(問吧列表頁)。
這里要注意一點,假如你是現(xiàn)在定義的URL規(guī)則是想應(yīng)用與圖片模塊的列表頁,那你這里URL名稱一定要寫category,否者的話,你在模塊設(shè)置這里是看不到你定義的URL規(guī)則。
三、HTML
你在定義URL規(guī)則的時候,有個可選項目,靜態(tài)URL規(guī)則:生成靜態(tài)頁面調(diào)用的URL規(guī)則,你選者“是”或者“否”,意思就是如果選者是,那你這條規(guī)則就是生成靜態(tài)頁面用的,相反就選否。
四、URL示例
這里就是些一些你想要的URL形式,你可以隨便寫,只要你自己認(rèn)得這是你這一條規(guī)則的形式。但是不能不寫啊,否者你在模型設(shè)置里面,又會發(fā)現(xiàn),怎么看不到我定義的規(guī)則名稱,這個示例可是當(dāng)名稱一樣用的哦。
在定義RUL規(guī)則之前,你首先要理解上面的四點,然后接下來要理解那些變量的含義了。
1、{$parentdir}{$catdir} ---含義:當(dāng)前欄目目錄名稱;
2、{$catid} ----含義:欄目ID號;
3、.{$fileext}---含義:.htm(注意這里前面要加個“."號l ;
4、{$year} ----含義:年;
5、{$month} --含義:月;
6、{$day} -----含義:日;
根據(jù)后臺 系統(tǒng)設(shè)置->相關(guān)設(shè)置->URL規(guī)則管理所列的URL規(guī)則編寫。
以下所用示例,請靈活修改。
示例欄目:
新聞news
|___國內(nèi)china
|___國際inter
|___美國usa
1、URL規(guī)則所用變量
{$catid}欄目id。例:形如1,10等
{$categorydir}欄目目錄樹(相對于phpcms安裝目錄)。例:如為一級目錄則為/news/,二級目錄為/news/china/,三級目錄為/news/inter/usa
{$catdir}欄目目錄。例:如為一級目錄則為/news/,二級目錄為/china/,三級目錄為/usa/
{$year} {$month} {$day} 年月日。文章發(fā)布時間的年,月,日。
{$page}頁碼。文章分頁時的頁碼。
{$fileext}靜態(tài)頁擴(kuò)展名。為網(wǎng)站配置->生成的擴(kuò)展名所定義。
{$contentid}文章id。
以下是專題模塊用的
{$typeid}類別id
{$typedir}類別目錄
{{$filename}專題名稱
{$specialid}專題id
問吧,對于問吧,最好不要修改了
{$action}操作
2、URL規(guī)則數(shù)據(jù)庫字段說明
模塊:所屬模塊,目前有問吧,專題,phpcms。
URL規(guī)則名稱:這個名稱應(yīng)該為URL規(guī)則應(yīng)用的范圍,如用于欄目頁(目錄),內(nèi)容頁等。一般會用到show(內(nèi)容頁),category(欄目頁)
生成Html:是否生成html。關(guān)系到所寫的URL規(guī)則。
URL規(guī)則/URL示例:這個就是本文重點要講的了
3、應(yīng)用示例
特別說明:定義url時,應(yīng)為分頁網(wǎng)址加上{$page}變量。兩條規(guī)則用|隔開。
(1)官方演示
{$catdir}/index.{$fileext}|{$catdir}/{$page}.{$fileext}
{$categorydir}/{$year}/{$month}{$day}/{$contentid}.{$fileext}|{$categorydir}/{$year}/{$month}{$day}/{$contentid}_{$page}.{$fileext}
(2)一個例子
建立形如/news/article_1_2.html的規(guī)則
{$catdir}/article_{$contentid}.{$fileext}|{$catdir}/article_{$contentid}_{$page}.{$fileext}
如選目錄樹,則{$catdir}改為{$category}
(3)擴(kuò)展功能(正式版未測試)
定義為動態(tài)時,所以欄目、內(nèi)容頁都為phpcms目錄下/list.php?,/show?等形式,如果想讓url規(guī)則為/news/show.php?id=,/news/index.php這個要怎么操作呢?
首先想到的是定義url規(guī)則,如
欄目頁{$catdir}/index.php|{$catdir}/index.php?page={$page}
內(nèi)容頁{$catdir}/show.php?contentid={$contentid}|{$catdir}/show.php?contentid={$contentid}&page={$page}
定義完之后,問題來了,所建的目錄下并沒有index.php和show.php文件,怎么辦?
把list.php復(fù)制到相應(yīng)目錄下,更名為index.php,show.php也做如上操作,這兩個文件都在phpcms的目錄里。
這時再看已經(jīng)輸入的內(nèi)容,會提示出錯,路徑錯誤,改show.php第一句為
require ‘../include/common.inc.php’; 這個是根據(jù)一級目錄改的
下面還有幾個require,相應(yīng)的改動一下就行了,我沒改,也沒有報錯。改完之后再瀏覽(在后臺,點文章標(biāo)題)就可以打開了。
修改復(fù)制進(jìn)去的index.php
第一句修改同上。因為自定義的URL規(guī)則是不帶catid參數(shù)的,所以在$catid = intval($catid);改為$catid = 5(這里是你所要改的欄目的id,在欄目管理可以看到)。
更多信息請查看IT技術(shù)專欄