织梦DEDECMS5.7如何实现伪静态支持?

织梦DEDECMS5.7支持伪静态的解决方法是通过修改配置文件和设置URL重写规则来实现。

织梦DEDECMS5.7支持伪静态的解决方法

织梦(DedeCMS)是一款流行的开源内容管理系统,其强大的功能和易用性使其广受用户欢迎,对于SEO优化和网站性能提升来说,启用伪静态是一个非常重要的步骤,本文将详细介绍如何在织梦DEDECMS5.7中实现全站伪静态。

一、开启伪静态支持

需要在织梦后台开启伪静态支持,登录织梦管理员后台,按照以下步骤操作:

1、系统参数设置

进入后台管理界面,点击“系统”菜单下的“系统基本参数”。

在“核心设置”选项卡中找到“是否使用伪静态”,选择“是”。

2、模块设置

如果启用了问答模块,还需进入“模块设置”,将“是否使用伪静态”设为“是”。

二、修改栏目和文章设置为动态浏览

为了使栏目和文章页面不生成静态HTML文件,需要将它们设置为动态浏览模式:

1、创建或批量增加栏目

在创建或批量增加栏目时,选择“使用动态页”。

2、添加新文章

发布新文章时,选择“仅动态浏览”。

3、已存在的静态页面处理

如果网站已经存在生成的静态栏目或文章HTML,可以在后台系统SQL命令行工具中执行如下语句:

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

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

三、配置伪静态规则

根据服务器类型不同,伪静态规则的配置也有所不同,以下是针对Apache和IIS服务器的伪静态配置方法。

Apache服务器伪静态配置

1、编辑.htaccess文件

打开站点根目录下的.htaccess文件,添加以下伪静态规则:

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

保存并上传修改后的.htaccess文件到网站根目录。

IIS服务器伪静态配置

1、加载Rewrite组件

确保IIS服务器已加载Rewrite组件。

2、配置httpd.ini文件

在站点根目录下创建httpd.ini文件,添加以下规则:

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

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

四、修改PHP源码实现伪静态

织梦DEDECMS5.7中的部分页面如首页、频道页、列表页、文章页等需要手动修改PHP源码来实现伪静态,以下是具体的修改步骤:

1. 首页伪静态

删除站点根目录下的index.html文件,以后不更新主页HTML即可,也可以选择不使用动态首页。

2. 频道、列表页、文章页伪静态

主要通过修改GetFileName()、GetTypeUrl()两个函数实现,具体步骤如下:

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 "/archives/view".$aid.'1.html';
        }

将GetTypeUrl()函数中的代码:

织梦DEDECMS5.7如何实现伪静态支持?
        //动态
        $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;

替换为:

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

2、打开/include/arc.listview.class.php文件

找到获取动态的分页列表GetPageListDM()函数末尾处:

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

替换为:

        $plist = str_replace('plus', 'category', $plist); //将默认的plus替换成category
        $plist = str_replace('.php?tid=', '', $plist);

3、打开/include/arc.archives.class.php文件

找到获取动态的分页列表GetPagebreakDM()函数末尾处:

        $PageList = str_replace(".php?aid=","",$PageList);

替换为:

        $plist = str_replace('plus', 'archives', $plist); //将默认的plus替换成archives
        $PageList = str_replace(".php?aid=","",$PageList);

3. 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中的“.php?”号就去掉了。

4. 搜索伪静态

搜索URL静态化比较麻烦,附带参数多且可能变化,这里简化处理,将搜索URL中的“search.php?”直接替换为“search.html?”,依次打开include文件夹下的channelunit.func.php、arc.searchview.class.php、arc.taglist.class.php以及/include/taglib/hotwords.lib.php,查找“search.php?”替换为“search.html?”即可。

5. 问答模块伪静态

问答模块的伪静态实现比较简单,只需在后台开启伪静态支持即可,对于个别页面,如ask目录下的browser.php、question.php以及include目录下的common.inc.php,无需额外修改。

通过以上步骤,织梦DEDECMS5.7可以实现全站伪静态,提高网站的SEO效果和用户体验,在实际操作过程中可能会遇到一些问题,下面列出一些常见问题及其解答。

Q1: 如何确认服务器是否支持伪静态?

A1: 可以联系空间提供商确认是否支持伪静态,如果是自己的服务器,可以通过加载相应的模块(如Apache的mod_rewrite或IIS的Rewrite组件)来支持伪静态。

Q2: 修改PHP源码后是否需要重启服务器?

A2: 是的,修改PHP源码后建议重启服务器以确保更改生效,还可以清除浏览器缓存以避免缓存问题影响测试结果。

Q3: 伪静态设置完成后如何验证效果?

A3: 可以通过浏览器访问各个页面,检查URL是否已变为伪静态形式,可以使用站长工具检测网站的URL结构是否正确。

Q4: 如果某些页面无法正常访问怎么办?

A4: 如果某些页面无法正常访问,可能是由于伪静态规则配置不正确导致的,可以检查对应的伪静态规则是否正确,或者暂时关闭伪静态功能进行排查。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1235724.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-24 13:27
下一篇 2024-03-28 12:35

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入