DedeCMS织梦栏目目录名个性化的方法及伪静态规则参考

DedeCMS伪静态好处就不多说了,但是绝大多数的处理方式都是列表用/list-1/ 或/,内容页用/。这些字母加ID数字可读性差,能不能像静态页面一样采用英文或拼音URL呢。下面菜鸟学院WWW.CAINIAOXUEYUAN.COM分享修改个性伪静态的方法。

栏目URL伪静态修改

打开/include/helpers/,找到

//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'';
}

替换为

//动态文章
if($cfg_rewrite == 'Y')
{
return $typedir."/view-".$aid.'.html';
}

如果栏目名为 about,则该栏目下的文章URL是 /about/。 继续往下找到

//动态
$reurl = $GLOBALS['cfg_phpurl']."/".$typeid;

替换为

//动态
$reurl = $typedir."/";

意思是:将默认的频道或是列表页URL如: /plus/1变更为如:/about/

栏目列表分页修改

打开/include/,找到

$plist = str_replace('.php?tid=', '-', $plist);

替换为

$plist = str_replace('plus/','list-', $plist);

将默认的 /plus/1 替换成 /list-1 的模式。然后找到

$plist = preg_replace("/&PageNo=(\d+)/i",'-\\',$plist);

在下面加一句

$plist = str_replace('/','',$plist);

这句是过滤掉“/”符号。

意思是:将默认的列表分页链接格式plus/x$x$xl修改为/,然后去掉最前面的/符号,让链接成为相对链接,这样就能在列表分页实现下面的地址形式。

/about/list-6-31-2.html 
6:代表栏目ID
31:代表总文章数
2:代表页数

但这个并不是最佳的,因为文章总数是会变化的,最佳的URL如下

/about/

伪静态规则参考

RewriteEngine On
RewriteCond %{http_host} ^ [NC]
RewriteRule ^(.*)$ http:///$1 [L,R=301]

#伪静态列表页(通用规则放前面,个性规则放后面)
RewriteRule ^list-([0-9]+)\.html$ /plus/$1
RewriteRule ^list-([0-9]+)-([0-9]+)\.html$ /plus/$1&totalresult=*&PageNo=$3
RewriteRule ^view-([0-9]+)-1\.html$ /plus/$1
RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/$1&pageno=$2

#以下为个性规则,一个栏目分别写一条,以此类推
RewriteRule ^about/$ /plus/6
RewriteRule ^case/$ /plus/5

#伪静态列表页分页
RewriteRule ^about/list-6-([0-9]+)\.html$ /plus/6&totalresult=*&PageNo=$2
RewriteRule ^case/list-5-([0-9]+)\.html$ /plus/6&totalresult=*&PageNo=$2

#伪静态信息浏览
RewriteRule ^about/([0-9]+)\.html$ /plus/$1
RewriteRule ^about/view-([0-9]+)-([0-9]+)\.html$ /plus/$1&pageno=$2

RewriteRule ^case/([0-9]+)\.html$ /plus/$1
RewriteRule ^case/view-([0-9]+)-([0-9]+)\.html$ /plus/$1&pageno=$2
THE END