DEDE5.7实现.htaccess方式栏目带目录名的个性化伪静态详解

前提 空间支持伪静态 给出.htaccess文件方案

1、后台-系统参数-核心设置-是否使用伪静态:选择“是”;
然后所有新建栏目的时候选“使用动态页”, 而且在“文件保存目录”填写入此栏目想使用的目录名
比如“  通知 ”这个栏目, 就写“ /tongzhi ” 记得前面加上斜杠,我调试www.dzxx.cn的时候,就是没加斜杠浪费了2个小时!!

2、(新安装DEDE跳过此步骤)如果已经有静态文件了 可以先删除所有生成的页面 然后
在后台-系统-SQL命令行工具中执行如下语句:
将所有文档设置为“仅动态浏览”:
update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”:
update dede_arctype set isdefault=-1

3、先修改/include/helpers/channelunit.helper.php文件
(1)查找:(修改文章阅读页的URL格式)
//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
}
替换为
//动态文章
if($cfg_rewrite == 'Y')
{
return $typedir."/view-".$aid.'-1.html';
}
意思是:将默认的/plus/view-1-1.html文章链接格式改为/栏目目录/view-1-1.html。比如 /tongzhi/view-1-1.html
(2) 查找:(修改栏目或频道首页的URL生成格式)
//动态
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
替换为
//动态
$reurl = $typedir."/";
意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为“/目录”形式。如/tongzhi


4、列表分页伪静态修改
打开/include/arc.listview.class.php


查找:
$plist = str_replace('.php?tid=', '-', $plist);
替换为
$plist = str_replace('plus/list.php?tid=','list-', $plist);
将默认的plus/list.php?tid=替换成/list-;的模式
然后找到
$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);
在下面加一句
$plist = str_replace('/','',$plist);
这句是过滤掉/符号


意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为/list-x-x-x.html,然后去掉最前面的/符号,让链接成为相对链接,这样就能在列表分页实现/tongzhi/list-6-31-2.html这种地址形式。如果有高手可以自行优化一下 将-6-这个表示频道ID的位置去除掉。


5、最后给出.htaccess伪静态规则

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


#伪静态列表页首(这里必须纯手工 例子以通知栏目为例 一个栏目分别写一条 以此类推)
RewriteRule ^tongzhi/$ /plus/list.php?tid=6
#伪静态列表页分页
RewriteRule ^tongzhi/list-6-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=6&totalresult=$1&PageNo=$2
#伪静态信息浏览
RewriteRule ^tongzhi/([0-9]+)\.html$ /plus/view.php?aid=$1
RewriteRule ^tongzhi/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2


6、TAG这些的伪静态个人觉得不必要。所以没写了,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值