dedecms5.5完美实现伪静态的方法(nginx)

发表于

Linux环境下dedecms5.5实现伪静态的方法,5.3应该也适用。

1.首在在后台开启伪静态.

2.然后栏目和文章设置成动态浏览.

设置方法为:在后台系统设置sql里执行以下语句

将所有文档设置为“仅动态浏览”,update dede_archives set ismake=-1

将所有栏目设置为“使用动态页”,update dede_arctype set isdefault=-1

改成1就是静态。动态转换为静态后需要重新生成HTML。

3. nginx设置重写规则. 内容为:

rewrite "^/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite "^/view-([0-9]+)-1\.html$" /plus/view.php?arcID=$1 last;
rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;
break;

4.修改/include/channelunit.func.php文件
1)if($isdefault==-1)
{
//动态
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
}
改为:
if($isdefault==-1)
{
//动态
if($cfg_rewrite == 'Y')
{
$reurl = $GLOBALS['cfg_cmsurl']."/list-{$typeid}.html";
}
else
{
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
}
}

2) global $cfg_typedir_df;
改为:
global $cfg_typedir_df,$cfg_rewrite;

3)if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)
{
//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
}
else
{
return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid";
}
}
else
改为:
if($rank!=0 || $ismake==-1 || $typeid==0 || $money>0)
{
//动态文章
if($cfg_rewrite == 'Y')
{
return $GLOBALS["cfg_cmsurl"]."/view-".$aid.'-1.html';
}
else
{
return $GLOBALS['cfg_phpurl']."/view.php?aid=$aid";
}
}
else

5.对于图片,在templets/default/article_image.htm和templets/default/article_image_frame.htm修改下边的部分
    else
    {
            if(npage==2) {
                if(namehand!='') location.href = namehand+shortname;
                //else location.href = "view.php?aid={dede:field name='id'/}";// html静态rewrite注释
                else location.href = "view-{dede:field name='id'/}";// html静态rewrite新加
            } else if(displaytype=='st' && namehand!='') {
                location.href = namehand+"_"+(npage-1)+shortname;
            } else {
                //location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage-1);//html静态rewrite注释
                location.href = "view-{dede:field name='id'/}-"+(npage-1)+".html";// html静态rewrite新加
            }
        }
    }

    //下一张
    function dPlayNext()
    {
        if(npage==totalpage) { alert("没有了哦"); }
        else
        {
        //    if(displaytype=='st' && namehand!='') location.href = namehand+"_"+(npage+1)+shortname;// html静态rewrite注释
        //    else location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage+1);//html静态rewrite注释
        if(displaytype=='st' && namehand!='') location.href = namehand+"_"+(npage+1)+shortname;// html静态rewrite新加
        else location.href = "view-{dede:field name='id'/}-"+(npage+1)+".html";// html静态rewrite新加
        }
    }

有一个问题就是如果你是采集的文章每次导入后需要再次运行 update dede_archives set ismake=-1
行将所有文档设置为“仅动态浏览”。其实运行这个语句用不了几秒钟。