###2.2[靜態/偽靜態]自定義URL
---
一、如何開啟自定義URL
進入后臺,“內容管理”-“欄目管理”,選擇修改或者添加欄目,“URL配置”,開啟“自定義URL規則”,再配置適合自己的規則。
二、規則標簽說明
{dir} : 表示欄目目錄
{pdir}: 表示包含父級層次的欄目目錄(不能與{dir}同時出現,兩者二選一)
{page}:表示分頁id
{id}: 表示內容或欄目的id
{y}: 表示年(內容規則中有效)
{m}: 表示月(內容規則中有效)
{d}: 表示日(內容規則中有效)
三、舉例說明
在添加/修改欄目時候,會發現一個選項“URL設置”。

如上圖,URL格式4項必填,填寫規則有說明,然后保存之后更新緩存和URL地址。
記住一定要更新緩存并且更新URL地址,保障規則url生效。
這時你會發現:
“新聞(news)”欄目的地址已經變成了:http://localhost/finecms/news/china/
其“內容頁面”的地址已經變成了:http://localhost/finecms/news/china/31.html
問題來了,你點這些地址,會不會發現會出現“404”錯誤或者是指向首頁,這是為什么呢?解決方案有2種。
方案1、生成靜態頁面

這是靜態生成的配置,“靜態文件夾”是指靜態文件生成的目錄,當然也可以不填(留空)表示生成在根目錄
(如果填寫了“靜態文件夾”,地址就會變成:http://localhost/finecms/靜態文件夾/news/china/)
然后提交保存,再次更新緩存和URL地址,接下來即可生成頁面了(不用說了,在“生成靜態”中生成~)
注意:如果內容URL沒有變化的話請“更新內容地址”
方案2、設置偽靜態
①、指向地址說明
欄目列表指向地址:index.php?c=content&a=list&catdir=欄目目錄 或者 index.php?c=content&a=list&catid=欄目ID
欄目分頁指向地址:index.php?c=content&a=list&catdir=欄目目錄&page=分頁 或者 index.php?c=content&a=list&catid=欄目ID&page=分頁
內容頁面指向地址:index.php?c=content&a=show&id=文章id
內容分頁指向地址:index.php?c=content&a=show&id=文章id&page=分頁
②、舉例說明
欄目列表:http://www.demo.com/list-news.html (news是欄目目錄)
欄目分頁:http://www.demo.com/list-news-1.html (news是欄目目錄,1是分頁id)
內容頁面:http://www.demo.com/show-1.html (1是文章的id)
內容分頁:http://www.demo.com/show-1-1.html (前者1是文章的id,后者1是分頁id)
偽靜態方案一:修改服務器偽靜態配置文件
以apache為例,修改.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^list-([a-z0-9A-Z]+).html$ index.php?c=content&a=list&catdir=$1 [L]
RewriteRule ^list-([a-z0-9A-Z]+)-([0-9]+).html$ index.php?c=content&a=list&catdir=$1&page=$2 [L]
RewriteRule ^show-([0-9]+).html$ index.php?c=content&a=show&id=$1 [L]
RewriteRule ^show-([0-9]+)-([0-9]+).html$ index.php?c=content&a=show&id=$1&page=$2 [L]
以iis為例,修改httpd.ini文件:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/list-([a-z0-9A-Z]+)\.html$ $1/index.php?c=content&a=list&catdir=$2 [L]
RewriteRule ^(.*)/list-([a-z0-9A-Z]+)-([0-9]+)\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 [L]
RewriteRule ^(.*)/show-([0-9]+)\.html$ $1/index.php?c=content&a=show&id=$2 [L]
RewriteRule ^(.*)/show-([0-9]+)-([0-9]+)\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 [L]
以Nginx為例:
rewrite ^([^\.]*)/list-([a-z0-9A-Z]+)\.html$ $1/index.php?c=content&a=list&catdir=$2 last;
rewrite ^([^\.]*)/list-([a-z0-9A-Z]+)-([0-9]+)\.html$ $1/index.php?c=content&a=list&catdir=$2&page=$3 last;
rewrite ^([^\.]*)/show-([0-9]+)\.html$ $1/index.php?c=content&a=show&id=$2 last;
rewrite ^([^\.]*)/show-([0-9]+)-([0-9]+)\.html$ $1/index.php?c=content&a=show&id=$2&page=$3 last;
偽靜態方案二:修改網站配置文件router.ini.php(Apache推薦)
當然這種方案的前提需要服務器開啟偽靜態并指向index.php,再次說一下方法,goooooo。
以apache為例,修改.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css|swf)$ index.php [L]
然后根據上面你自定義的路由格式來設計偽靜態指向(一定要懂正則表達式)。
規則匹配文件config/router.ini.php (一定注意不能用記事本之類的工具修改)
規則格式圖:

按照上面的例子,我們可以設計成如下匹配規則:

熟悉正則表達式的朋友應該一眼能看懂,再次強調使用該方法一定要懂正則表達式哦~~
- 后臺管理
- 1.首次進入系統有紅色的提示文字
- 2.欄目管理
- 3.附件管理
- 4.會員投稿流程
- 5.自定義模型使用說明
- 6.表單使用教程
- 7.Ucenter使用說明
- 8.站內搜索參數說明及表單設計
- 9.會員擴展使用教程
- 10數據采集
- 代碼配置管理
- 2.1字段類別說明
- 2.2[靜態/偽靜態]自定義URL
- 2.3網站多語言配置方法
- 2.4后臺管理目錄(admin)更改方法介紹
- 2.5自定義Tag標簽的URL
- 2.6多站點及分站配置
- 2.7欄目自定義字段
- 2.8提交表單郵件通知
- 2.9極驗驗證
- 2.10自定義字段表單調用
- 2.11聯動菜單(linkage)
- 2.12模型選項名稱和選項值
- 2.13自定義編輯器
- 2.14個性化URL結構
- 數據結構與標簽模板設計
- 3.1部分表的數據結構
- 3.2模板設計指南
- 3.3萬能標簽list
- 3.4標簽語法說明
- 3.5系統變量介紹
- 3.6系統函數介紹
- 3.7欄目調用說明
- 3.8SQL語句查詢
- 3.9推薦位調用
- 3.10Tag標簽調用
- 3.11插件開發指南
- 3.12自定義字段類別
- 3.13自定義分頁樣式
- 3.14表單模型和會員擴展模型的回調函數
- 3.15模型回調函數開發