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

如何修改DedeCMS中的伪静态重写规则?

在 dedecms 后台,进入“系统设置” > “基本参数”,找到 URL 静态化选项,选择伪静态模式并保存。

在dedecms(织梦内容管理系统)中,伪静态重写设置是一项重要的功能,它不仅有助于提高网站的SEO效果,还能使URL更加美观和易于理解,以下是具体的设置方法:

开启后台伪静态功能

1、登录后台:需要登录到dedecms的后台管理界面。

2、系统设置:在后台左侧菜单栏中找到“系统”选项,点击进入后选择“核心设置”。

3、启用伪静态:在核心设置页面中,找到“是否使用伪静态”选项,将其设置为“是”,然后保存配置。

修改PHP文件以支持伪静态

1、打开include/helpers/channelunit.helper.php文件:使用文本编辑器或IDE打开网站根目录下的include/helpers/channelunit.helper.php文件。

2、修改文章URL生成方式:在文件中找到以下代码(大约在162165行左右):

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

将其修改为:

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

3、修改列表分页URL生成方式:在文件中找到以下代码(大约在232235行左右):

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

将其修改为:

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

4、保存文件:完成上述修改后,保存并关闭文件。

设置.htaccess或httpd.ini文件

根据服务器的不同,需要在不同的配置文件中添加伪静态规则。

1、对于Apache服务器:在网站根目录下创建或编辑.htaccess文件,添加以下规则:

   RewriteEngine On
   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]
   RewriteRule ^view([09]+)1.html$ /plus/view.php?arcID=$1 [L]
   RewriteRule ^view([09]+)([09]+).html$ /plus/view.php?aid=$1&pageno=$2 [L]

2、对于Nginx服务器:在网站根目录下的nginx.conf文件中添加以下规则:

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

3、对于IIS服务器:在网站根目录下的web.config文件中添加以下规则:

   <configuration>
     <system.webServer>
       <rewrite>
         <rules>
           <rule name="RewriteList" stopProcessing="true">
             <match url="^list([09]+).html$" />
             <action type="Rewrite" url="/plus/list.php?tid={R:1}" />
           </rule>
           <! 其他规则类似 >
         </rules>
       </rewrite>
     </system.webServer>
   </configuration>

修改数据库设置

为了确保所有文档和栏目都设置为动态浏览,需要修改数据库。

1、将所有文档设置为“仅动态”:执行以下SQL语句:

   update dede_archives set ismake=1;

2、将所有栏目设置为“使用动态页”:执行以下SQL语句:

   update dede_arctype set isdefault=1;

FAQs常见问题解答

Q1: 为什么开启了伪静态后,网站还是显示动态URL?

A1: 可能的原因包括:1)伪静态规则设置不正确;2)服务器不支持URL重写;3).htaccess或httpd.ini文件权限不足,请检查相关设置和文件权限。

Q2: 如何在后台发布文章时默认选择“仅动态浏览”?

A2: 可以修改后台模板文件来实现,找到/dede/templets/article_add.htm文件,将以下代码:

   <input name="ishtml" type="radio" class="np" value="1" checked="checked" /> 生成HTML
   <input type="radio" name="ishtml" class="np" value="0"/> 仅动态浏览

修改为:

   <input name="ishtml" type="radio" class="np" value="1" /> 生成HTML
   <input type="radio" name="ishtml" class="np" value="0" checked="checked"/> 仅动态浏览

这样,在发布文章时,“仅动态浏览”选项会被默认选中。

0