网上介绍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}','{d}','{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
伪静态规则要看自己的情况而修改的。