網上介紹DEDEMS文章頁偽靜態的教程可以說得上用多如牛毛來形容,但夢想都感覺那些偽靜態并不是很完美的,都是千遍一律的,不是用默認的偽靜態URL就是用拼音來代替。DEDECMS的文章頁默認的偽靜態的url都是,http://www.dedeui.com/plus/view-12-1.html 這樣的URL,對于我們有個性的站長來說,并不是我們想要的。
這次我帶給你大家的就是直接用后臺欄目文章命名規則里的地址來打造個性的DEDECMS文章頁偽靜態URL。一般我們在后臺設置欄目的時候,都會設置一下文章文章命名規則,如下圖。
這次我們就用這個文章命名規則里自己設置的規則來打造完美的文章頁偽靜態URL。
修改文件includehelperschannelunit.helper.php
直接搜索 //動態文章
下一行看到return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
替換成
-
/**
-
* 代碼類
-
* Copyright (c) 2007 - 2010, dedeui, Inc.
-
* 夢想QQ 51241904
-
* http://www.dedeui.com/
-
*/
-
$articleDir = MfTypedir($typedir);
-
-
-
$articleRule = strtolower($namerule);
-
-
-
if($articleRule=='')
-
-
-
{
-
-
-
$articleRule = strtolower($GLOBALS['cfg_df_namerule']);
-
-
-
}
-
-
-
if($typedir=='')
-
-
-
{
-
-
-
$articleDir= $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];
-
-
-
}
-
-
-
$dtime = GetDateMk($timetag);
-
-
-
list($y, $m, $d) = explode('-', $dtime);
-
-
-
$arr_rpsource = array('{typedir}','{y}','{m}','6o84sis4','{timesta mp}','{aid}','{cc}');
-
//上面這里的{timesta mp}多了一個空格,大家去掉就可以了,PS一下論壇過濾 ta m
-
-
-
$arr_rpvalues = array($articleDir,$y, $m, $d, $timetag, $aid, dd2char($m.$d.$aid.$y));
-
-
-
if($filename != '')
-
-
-
{
-
-
-
$articleRule = dirname($articleRule).'/'.$filename.$GLOBALS['cfg_df_ext'];
-
-
-
}
-
-
-
$articleRule = str_replace($arr_rpsource,$arr_rpvalues,$articleRule);
-
-
-
if(preg_match("/{p/", $articleRule))
-
-
-
{
-
-
-
$articleRule = str_replace('{pinyin}',GetPinyin($title).'_'.$aid,$articleRule);
-
-
-
$articleRule = str_replace('{py}',GetPinyin($title,1).'_'.$aid,$articleRule);
-
-
-
}
-
-
-
$articleUrl = '/'.preg_replace("/^//", '', $articleRule);
-
-
-
-
-
-
-
return $articleUrl;
好了,代碼部分修改完畢了。修改好本文件之后代碼如下:
接下來我們要在系統基本參數->核心設置里設置一下開啟偽靜態
勾選,是否使用偽靜態。這樣就開啟了偽靜態功能了,現在隨便添加一篇文章測試一下
發布選項這里要選擇 僅動態瀏覽,這樣才會是偽靜態的。
發布成功后,可以看到,文章偽靜態的地址和真靜態生成html的地址是一模一樣的了。
最后附上偽靜態規則。
RewriteRule ^(.*)/cslm/([0-9]+)/([0-9]+)/([0-9]+).html $1/plus/view.php?aid=$4
偽靜態規則要看自己的情況而修改的。