当前位置:首页 > 行业动态 > 正文

如何配置DedeCMS 5.7的列表和内容页的最新伪静态分页规则?

DedeCMS 5.7的伪静态规则通常需要根据服务器环境进行配置。以下是一个基于Apache服务器环境的示例:,,列表分页伪静态规则:,“ apache,RewriteRule ^list([09]+).html$ list.php?page=$1 [L],` ,,内容页伪静态规则:,` apache,RewriteRule ^article([09]+)([09]+).html$ view.php?aid=$1&page=$2 [L],` ,,内容分页伪静态规则:,` apache,RewriteRule ^article([09]+)([09]+).html$ view.php?aid=$1&page=$2 [L],“,,这些规则可能需要根据您的具体情况进行调整。在实际应用中,请确保将规则添加到您的Apache配置文件(如httpd.conf)或.htaccess文件中,并重启Apache服务以使更改生效。

DedeCMS 5.7 列表、列表分页、内容页、内容分页最新伪静态规则

DedeCMS 5.7版本在实现伪静态方面,需要对多个文件进行修改以支持列表页、内容页及其分页的伪静态,以下是详细的步骤和说明:

准备工作

1、检查服务器是否支持伪静态:确保你的网站空间或服务器支持伪静态,如果是Apache服务器,可以通过.htaccess文件配置伪静态;如果是IIS服务器,则需要加载Rewrite组件并配置httpd.ini文件。

2、启用DedeCMS伪静态功能

进入DedeCMS后台,系统参数 > 核心设置 > 是否使用伪静态,选择“是”。

如果启用了问答模块,则在后台系统参数模块设置中将是否使用伪静态设置为“是”。

3、更新已有的静态页面为动态浏览:如果网站已经存在生成的静态栏目或文章HTML,需要在后台系统SQL命令行工具中执行以下语句:

   update dede_arctype set isdefault=1;
   update dede_archives set ismake=1;

这里的dede是你安装时的数据表前缀,根据实际情况替换。

修改PHP源码

1、列表页和内容页的伪静态

打开/include/helpers/channelunit.helper.php文件,找到GetFileName()函数中的如下代码:

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

将其替换为:

     // 动态文章
     if($cfg_rewrite == 'Y') {
       return "/DedeCMS/DedeCMS5.7".$aid.'1.html';
     }

这样,文章链接格式从默认的/plus/view11.html改为/DedeCMS/DedeCMS5.711.html。

同样在该文件中,找到GetTypeUrl()函数中的如下代码:

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

将其替换为:

     // 动态
     $reurl = "/category/list".$typeid.".html";

这样,频道或列表页URL从默认的/plus/list.php?tid=1变更为/category/list1.html形式。

2、列表分页的伪静态

打开/include/arc.listview.class.php文件,找到获取动态的分页列表GetPageListDM()函数末尾处的如下代码:

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

将其替换为:

     $plist = str_replace('plus/list.php?tid=', 'DedeCMS/DedeCMS5.7', $plist);

这样,列表分页链接格式从默认的plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7xxx.html。

3、内容分页的伪静态

打开/include/arc.archives.class.php文件,找到获取动态的分页列表GetPagebreakDM()函数末尾片的如下代码:

     $PageList = str_replace("plus/view.php?tid=","DedeCMS/DedeCMS5.7",$PageList);

将其替换为:

     $plist = str_replace('plus/view.php?tid=', 'DedeCMS/DedeCMS5.7', $plist);

这样,文章分页链接格式从默认的plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7xxx.html。

4、TAG标签的伪静态

打开/include/taglib/tag.lib.php文件,找到lib_tag()函数下的如下代码:

     $row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";

将其替换为:

     $row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword'])."/";

这样,TAG标签URL从默认的/tags.php?/dedecms模板/变为/tags/dedecms模板/。

配置伪静态规则(针对IIS服务器)

对于IIS服务器,需要配置httpd.ini文件,添加以下伪静态规则:

[ISAPI_Rewrite]
3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/RMB/list([09]+).html $1/plus/list.php?tid=$2 [I]
RewriteRule ^(.*)/RMB/list([09]+)([09]+)([09]+).html $1/plus/list.php?tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^(.*)/RMB/huilv([09]+)([09]+).html $1/plus/view.php?arcID=$2&pageno=$3 [I]
RewriteRule ^(.*)/(.*)_(.*)_([09]+).html $1/huilv/?from=$2&to=$3&num=$4 [I]
RewriteRule ^(.*)/tags.html $1/tags.php [I]
RewriteRule ^(.*)/tags/(.*)(?:(?.*))* $1/tags.php?/$2 [I]
RewriteRule ^(.*)/tags/(.*)/(?:(?.*))* $1/tags.php?/$2/ [I]
RewriteRule ^(.*)/tags/(.*)/([09])(?:?.*)* $1/tags.php?/$2/$3 [I]
RewriteRule ^(.*)/tags/(.*)/([09])/(?:?.*)* $1/tags.php?/$2/$3/ [I]

保存为httpd.ini文件并上传到网站的根目录。

FAQs

问题1:如何确认我的服务器是否支持伪静态?

答:可以联系你的空间提供商询问是否支持伪静态,如果是自己的服务器,通常Apache服务器通过.htaccess文件配置伪静态,而IIS服务器需要加载Rewrite组件并配置httpd.ini文件来支持伪静态。

问题2:修改完PHP源码后,是否需要重启服务器?

答:一般情况下,不需要重启服务器,但为了确保修改生效,建议清除浏览器缓存或重新生成页面缓存,如果你的服务器有opcode缓存如APC或Zend Optimizer+,可能需要重启这些服务。

0