phpcms v9 目錄式偽靜態

2021-08-10 23:23:14 字數 4752 閱讀 9718

官方程式預設偽靜態是不支援自定義欄目名的

pc 能夠通過目錄訪問到正確頁面

pc後台url規則管理需要正確配置

ps: pc預設情況下 url規則中無效,也需要解決

.htaccess檔案配置好對應偽靜態

欄目頁偽靜態(不生成html)時,url規則中仍顯示為解決方法。

開啟phpcms\modules\content\classes\url.class.php定位到122

$url = str_replace(array('', ''), array($catid, $page), $urlrule);

替換成

$category_dir = $this->get_categorydir($catid);

$url = str_replace(array('', '','',''), array($catid, $page,$category['catdir'],$category_dir), $urlrule);

ps: 只做到這一步,生成的url還是會有bug的(分頁url裡有重複的欄目路徑),繼續往下,全部寫完就沒問題了!

phpcms v9 預設是無法通過欄目名訪問到正確頁面的,因為缺少必要的引數。

開啟phpcms\modules\content\index.php 定位到207

$catid = $_get['catid'] = intval($_get['catid']);

替換成

if(isset ($_get['catid'])) else

在該檔案底部(}?>前)增加乙個方法

private

function

_getcategoryid

($catdir) else

$this->category_db = pc_base::load_model('category_model');

$result = $this->category_db->get_one(array('catdir'=>$dirname));

return

$result['catid'];

}

開啟phpcms\modules\content\index.php 定位到35-36

$catid = intval($_get['catid']);

$id = intval($_get['id']);

替換成

if(isset ($_get['catid'])) else

if(isset($_get['id'])) else

在該檔案底部(}?>前)增加乙個方法

private

function

_getprefixid

($catdir,$prefix) else

$this->category_db = pc_base::load_model('category_model');

$result = $this->category_db->get_one(array('catdir'=>$dirname));

$catid = $result['catid']; $siteids = getcache('category_content','commons');

$siteid = $siteids[$catid]; $categorys = getcache('category_content_'.$siteid,'commons');

if(!isset($categorys[$catid]) || $categorys[$catid]['type']!=0) showmessage(l('information_does_not_exist'),'blank');

$this->category = $cat = $categorys[$catid];

$this->category_setting = $cat['setting'] = string2array($this->category['setting']);

$siteid = $globals['siteid'] = $cat['siteid'];

$model = getcache('model','commons');

$modelid = $cat['modelid'];

$tablename = $this->db->table_name = $this->db->db_tablepre.$model[$modelid]['tablename'];

$result = $this->db->get_one(array('prefix'=>$prefix));

if(empty($result)) return

$result['id'];

}

偽靜態規則需要根據url規則進行自定義

rewriteengine on

rewriterule ^content-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3

rewriterule ^show-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3

rewriterule ^list-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=lists&catid=$1&page=$2

categoryurl示例orurl規則

dir/index.html|dir/list-1.html

/index.html|/list-.html

showurl示例orurl規則

dir/1.html|dir/1-1.html

/.html|/-.html

偽靜態規則

rewriteengine on

rewriterule ^index.html index.php

rewritecond $1 !^(api|caches|html|kc-path|phpcms|phpsso_server|statics|uploadfile)

rewriterule ^(\w+)/(list\-(\d+)\.html)? index.php?m=content&c=index&a=lists&catdir=$1&page=$3

rewriterule ^(\w+)/(\d+)(\-(\d+))?\.html index.php?m=content&c=index&a=show&catdir=$1&id=$2&page=$4

categoryurl示例orurl規則

dir.html|dir-1.html

.html|-.html

showurl示例orurl規則

dir/1.html|dir/1-1.html

/.html|/-.html

偽靜態規則

rewriteengine

onrewriterule

^index.html index.php

errordocument

404 /error.html

rewritecond

$1 !^(api|caches|html|kc-path|phpcms|phpsso_server|statics|uploadfile)

rewriterule

^(\w+)/(\d+)(\-(\d+))?\.html index.php?m=content&c=index&a=show&catdir=$1&id=$2&page=$4

rewritecond

$1 !^(error|js|index)

rewriterule

^((\w+)(\-(\d+))?)\.html index.php?m=content&c=index&a=lists&catdir=$2&page=$4

Phpcms v9程式目錄結構解析

phpcms v9檔案目錄說明 一 api目錄 應用程式介面,介面檔案檔案一般在這裡。二 caches目錄 快取檔案集中地,按模型和類別分資料夾存放。三 phpcms目錄 主程式檔案目錄,mvc結構總部,模型 類 模板檔案目錄都在裡邊。四 phpsso server目錄 單獨的會員管理系統,可單獨應...

PHPCMS V9 注射利用

在用bugscan 白帽子神器 檢測朋友 的時候碰到這個authkey。順便把利用 給大家分享下。本指令碼僅供白帽子安全測試使用,如有用於非法途徑,與作者無關 小白第一次寫東西,大牛勿噴 獲取檢測網域名稱 domain url domain url post url echo 判斷網域名稱是否為空,...

PHPCMS V9 加密規則

phpcms v9 加密規則 加密方式 md5 md5 password encrypt 第一步 對輸入的密碼32位小寫 md5 對輸入的密碼進行trim過濾 第三步 第二步結果密碼32位小寫 md5 例子 密碼 123456 encrypt vcmkn3 如下 a md5 123456 echo ...