DEDE开启伪静态的重写设置

By | 2010/01/07

   DEDE虽然可以生成静态页面, 也可以重写成为伪静态. 在后台有设置可以开启伪静态. 开启后还要经过一定的设置才能使用.


 1. 首先栏目和文章最好设置成动态浏览. 这样才不会生成静态html文件.
 
 2. 设置重写规则. 在系统目录下加一个  .htaccess文件. 内容为:

RewriteEngine On
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

  如果你的系统支持url重写,到这里就可以用伪静态访问了.
 
 3.更改重写的URL.
 如果用默认的设置, 访问的URL是:
 http://www.dengor.com/plus/view-131-1.html
 这样的形色, 我们是可以更改这种样式的.
 找到文件/include/channelunit.func.php打开.  
 
 可以看到有这样的语句

 return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';

 这就是文章的url形色.

 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;

 这是列表的重写url.
 
 可以使url更短一点,完成可以写成:

 return "/view-".$aid.'-1.html';

 和

 $reurl = "/list-".$typeid.".html";

 这时重写规则也要更新.

RewriteEngine On
RewriteRule ^list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

   更进一步,还可以把view换成自己的任何词语,这也要把include/arc.archives.class.php文件中的view也一样替换。

5 thoughts on “DEDE开启伪静态的重写设置

  1. Pingback: Apach中.htaccess一些常用的重写 - 登高望远

  2. QQ餐厅

    DEDE自身的那种形式不是静态的吗?这个伪静态有什么用啊?

  3. dengor Post author

    @QQ餐厅
    静态要把文件全部输出, 每次输出很耗时间, 而且第次改变都要重新输出. 如果页面访问量不是很大. 静态输出没有必要就可以用伪静态了.

  4. dengor Post author

    设置才能使用。
    1、首先栏目和文章最好设置成动态浏览,这样才不会生成静态html文件。

    修改数据库
    将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令:
    update dede_archives set ismake=-1
    并将ismake的默认值设置为 -1即动态。
    将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令:
    update dede_arctype set isdefault=-1

    2、修改重写的URL。
    如果用默认的设置, 访问的URL是:
    http://www.XXXX.com/plus/view-131-1.html
    这样的形式, 我们是可以更改这种样式的.
    找到文件/include/helpers/channelunit.helper.php打开.
    可以看到有这样的语句

    return $GLOBALS[“cfg_plus_dir”].”/view-“.$aid.’-1.html’;

    这就是文章的url格式. 修改为

    return “/view-“.$aid.’-1.html’;

    找到这是列表的重写url.

    $reurl = $GLOBALS[‘cfg_phpurl’].”/list.php?tid=”.$typeid;

    这是列表的重写url. 修改为:

    $reurl = “/list-“.$typeid.”.html”;

    3、需要设置重写规则。
    在系统目录下加一个 .htaccess文件,在里面加上下面的:

    RewriteEngine On
    RewriteRule ^list-([0-9]+)\.html$ /plus/list.php?tid=$1
    RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
    RewriteRule ^view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1
    RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

    如果你的系统支持url重写,到这里就可以用伪静态访问了.这样就完成了设置。
    更进一步,还可以把view换成自己的任何词语,这也要把include/arc.archives.class.php文件中的view也一样替换。
    发布选项: 生成HTML 仅动态浏览 发文章的时候选一下就可以了。为了以后升级,尽量减少修改文件。

  5. dengor Post author

    nginx下的重写规则:
    location / {
    rewrite ^/list-([0-9]+)\.html$ /plus/list.php?tid=$1;
    rewrite ^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3;
    rewrite ^/view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1;
    rewrite ^/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2;
    }

Comments are closed.