Phpcms自定義URL規(guī)則技巧整理

字號:


    有時(shí)候我們在phpcms的使用過程中,需要自定義一些規(guī)則方便seo目錄要求等,這里簡單分享下,方便需要的朋友
    一、概述
    自定義url規(guī)則,首先要建立自己的URL規(guī)則,首先的理解一些定義和變量含義。首先進(jìn)入U(xiǎn)RL規(guī)則管理這里,你會看到如下內(nèi)容(進(jìn)入方法:“擴(kuò)展”-》“RUL規(guī)則管理”—》“管理RUL規(guī)則”)
    在、問吧、專題、等等
    也就是說你下一步建立的RUL規(guī)則是要應(yīng)用在哪個模塊上,那你就要選者哪個。在這里特別要提示一下的是,你在建立 URL規(guī)則的時(shí)候不要選哪個“不限”。本然按照PHPCMS當(dāng)初的意思是可以應(yīng)用與任何模塊,但是我實(shí)際操作當(dāng)中,發(fā)現(xiàn)如果選者了不限,那你在其他模型里 面是看不到你選者的URL規(guī)則。
    二、名稱
    名稱這里PHPCMS分 category(列表頁),show(詳細(xì)頁),htmlshow(問吧詳細(xì)頁),htmlcategory(問吧列表頁)。
    這里要注意一點(diǎn),假如你是現(xiàn)在定義的URL規(guī)則是想應(yīng)用與圖片模塊的列表頁,那你這里URL名稱一定要寫category,否者的話,你在模塊設(shè)置這里是看不到你定義的URL規(guī)則。
    三、HTML
    你在定義URL規(guī)則的時(shí)候,有個可選項(xiàng)目,靜態(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ī)則之前,你首先要理解上面的四點(diǎn),然后接下來要理解那些變量的含義了。
    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ā)布時(shí)間的年,月,日。
    {$page}頁碼。文章分頁時(shí)的頁碼。
    {$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示例:這個就是本文重點(diǎn)要講的了
    3、應(yīng)用示例
    特別說明:定義url時(shí),應(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)時(shí),所以欄目、內(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的目錄里。
    這時(shí)再看已經(jīng)輸入的內(nèi)容,會提示出錯,路徑錯誤,改show.php第一句為
    require ‘../include/common.inc.php’; 這個是根據(jù)一級目錄改的
    下面還有幾個require,相應(yīng)的改動一下就行了,我沒改,也沒有報(bào)錯。改完之后再瀏覽(在后臺,點(diǎn)文章標(biāo)題)就可以打開了。
    修改復(fù)制進(jìn)去的index.php
    第一句修改同上。因?yàn)樽远x的URL規(guī)則是不帶catid參數(shù)的,所以在$catid = intval($catid);改為$catid = 5(這里是你所要改的欄目的id,在欄目管理可以看到)。