各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > dedecms

织梦DedeCms v5.7如何设置全站伪静态

管理员 2016-04-02
dedecms
92

织梦DedeCms全站伪静态,是为了更方便管理和SEO,织梦DedeCms默认是生成静态html文件的,对于优化已经非常友好,但还是有部分页面是动态形式的(比如:Tag标签页面、网站内容搜索页面、DedeCms问答页面等),为了是这些页面更好的被搜索引擎收录,就需要进行伪静态了,虽然织梦DedeCms系统可以生成静态html文件,但如果每天更新内容量特别大的话,对于生成html文件也成为系统和人力的一个负担,那么也可以做成伪静态形式,这样就免去了不断繁琐的生成html文件了。

织梦DedeCms v5.7如何设置全站伪静态

将DedeCms全站静态化,这就需要mod_rewrite伪静态模块的支持。只要站长对.htaccess正则表达式精通,就可以把dede整站静态化,更符合搜索引擎,而且还可以避免重复URL来。DedeCms全站伪静态配置有些麻烦,主要是需要我们手动修改源代码。整理步骤如下:

1、首先开启站点伪静态功能。登录dede管理员后台->系统->系统基本参数->核心设置->是否使用伪静态 请选择“是”。

2、修改源程序,实现首页伪静态、频道页伪静态、列表页伪静态、文章页伪静态,这是过程比较复杂,不如其它php开源程序操作简单。

3、制作编写.htaccess和.htaccess文件规则,上传到DedeCms的安装目录。

织梦DedeCms全站伪静态教程:含列表|文章|问答|搜索|TAG伪静态规则:

1、网站服务器和网站空间是否支持伪静态:

这点特别重要,要么所以设置都不起作用。如果你的网站使用的是服务器,那么就可以自己动手设置一下,如果是空间的话,可以询问下IDC服务商客服,看是否支持伪静态(一般空间都是支持伪静态的)。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpd.ini文件。

2、开启DedeCMS伪静态:

1)织梦DedeCms后台-系统参数-核心设置-是否使用伪静态:选择“是”;

2)如果你启用了织梦DedeCms问答模块,则在后台-系统参数-模块设置-是否使用Rewrite:选择“是”;

3)创建栏目或批量增加栏目时,栏目列表选项:选择“使用动态页”; 添加新文章时,发布选项:选择“仅动态浏览 ”。同样你也可以更改他们的模板,让他们默认就是这两个值,一劳永逸。修改方法很简单,方法如下:

找到后台文件:/dede/templets/catalog_add.htm 修改添加栏目时默认“使用动态页”

<td height="26" style="padding-left:10px;">栏目列表选项:</td>
            <td><input type='radio' name='isdefault' value='1' class='np' checked="checked" />链接到默认页
              <input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页
              <input type='radio' name='isdefault' value='-1' class='np' />使用动态页</td>

改为下面代码

<td height="26" style="padding-left:10px;">栏目列表选项:</td>
            <td><input type='radio' name='isdefault' value='1' class='np' />链接到默认页
              <input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页
              <input type='radio' name='isdefault' value='-1' checked="checked" class='np' />使用动态页</td>

找到后台文件:/dede/templets/article_add.htm 修改添加文章时默认“仅动态浏览”

<td width="90">发布选项:</td>
          <td width="379"><input name="ishtml" type="radio" class="np" value="1" checked="1" />生成HTML
  <input type="radio" name="ishtml" class="np" value="0"/>仅动态浏览 </td>

改为下面代码

<td width="90">发布选项:</td>
          <td width="379"><input name="ishtml" type="radio" class="np" value="1" />生成HTML
  <input type="radio" name="ishtml" class="np" value="0" checked="1"/>仅动态浏览 </td>

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

update dede_arctype set isdefault=-1;
update dede_archives set ismake=-1;
注:命令中dede是网站安装时的数据表前缀,根据实际情况进行替换。

3、开启DedeCms伪静态支持并不能完全在后台配置,有很多地方还是需要手动修改的。下面讲解DedeCms全站伪静态的实现方法,适用于V5.3以上版本。这次的DedeCms伪静态测试环境是Windows IIS6,对于Linux或其它服务器的伪静态实现原理都是一样的,只要搞清楚思路就行。

1)DedeCms首页伪静态:

把站点根目录下index.html删除,以后不更新主页HTML就可以了,当然你也可以选择不使用动态首页。

2)DedeCms频道|列表页|文章页伪静态:

主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V5.3、DedeCms V5.5和DedeCms V5.6版本,打开/include/channelunit.func.php进行修改。注意:DedeCms V5.7,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可。 

        A.将GetTypeUrl()中的如下代码:
  //动态
  $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
  替换为
  //动态
  $reurl = "/category/list-".$typeid.".html";
  这步必须修改,即让你的频道或是列表页URL变更为/category/list-1.html形式。

     B.将GetFileName()中的如下代码:
  //动态文章
  if($cfg_rewrite == 'Y')
  {
  return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
  }
  替换为
  //动态文章
  if($cfg_rewrite == 'Y')
  {
  return "/archives/view-".$aid.'-1.html';
  }
  将文章页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html,随个人喜好,不改也行。   

3)DedeCms列表分页伪静态:

  打开/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);
  将列表分页默认链接格式/plus/list-1-2-1.html修改为/category/list-1-2-1.html,这步也可以不作更改。

4)DedeCms文章分页伪静态:

  打开/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);
  这步不作修改也可以,只是个人喜好问题。

5)DedeCmsTAG标签伪静态:

  DedeCms默认的TAG标签URL,形如/tags.php?/dedecms5.7/,特别的难看。打开/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?”号就去掉了。

6)DedeCms搜索伪静态:

  DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的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?”即可。

7)DedeCms问答伪静态:

  问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browser.php、question.php以及include目录下的common.inc.php、functions.inc.php都需要简单修改才可以匹配伪静态规则。注意一点,DedeCms V5.7问答模块整体升级了,之前的规则已经不适用了。

4、DedeCms伪静态规则:

依照上面的步骤修改完毕,接下来配置好httpd.ini文件和.htaccess文件伪静态规则,则DedeCms全站伪静态就完美实现。

1)IIS伪静态

  打开httpd.ini文件,加入如下规则:
  #首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环
  RewriteRule ^(.*)/index.html $1/index.php [I]
  #列表页伪静态规则
  RewriteRule ^(.*)/category/list-([0-9]+).html $1/plus/list.php?tid=$2 [I]
  RewriteRule ^(.*)/category/list-([0-9]+)-([0-9]+)-([0-9]+).html $1/plus/list.php?tid=$2&TotalResult=$3&PageNo=$4 [I]
  #文章页伪静态规则
  RewriteRule ^(.*)/archives/view-([0-9]+)-([0-9]+).html $1/plus/view.php?arcID=$2&pageno=$3 [I]
  #搜索伪静态规则
  RewriteRule ^(.*)/search.html(?:(?.*))* $1/search.php?$2 [I]
  #TAG标签伪静态规则
  RewriteRule ^(.*)/tags.html $1/tags.php [I]
  RewriteRule ^(.*)/tags/(.*)(?:(?.*))* $1/tags.php?/$2 [I]
  RewriteRule ^(.*)/tags/(.*)/(?:(?.*))* $1/tags.php?/$2/ [I]
  RewriteRule ^(.*)/tags/(.*)/([0-9])(?:(?.*))* $1/tags.php?/$2/$3 [I]
  RewriteRule ^(.*)/tags/(.*)/([0-9])/(?:(?.*))* $1/tags.php?/$2/$3/ [I]
  #问答伪静态规则,适用于DedeCmsV5.3-5.6版本,需要修改几处程序
  RewriteRule ^(.*)/post.html $1/post.php [I]
  RewriteRule ^(.*)/type.html $1/type.php [I]
  RewriteRule ^(.*)/question-([0-9]+).html $1/question.php?id=$2 [I]
  RewriteRule ^(.*)/browser-1-([0-9]+).html $1/browser.php?tid=$2 [I]
  RewriteRule ^(.*)/browser-2-([0-9]+).html $1/browser.php?tid2=$2 [I]
  RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+).html $1/browser.php?tid=$2&page=$3 [I]
  RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+).html $1/browser.php?tid2=$2&page=$3 [I]
  RewriteRule ^(.*)/browser-([0-9]+).html $1/browser.php?lm=$2 [I]
  RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+).html $1/browser.php?tid=$2&lm=$3 [I]
  RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+).html $1/browser.php?tid2=$2&lm=$3 [I]

2)Apache伪静态:

        打开.htaccess文件,加入如下规则:
  #提供部分规则作参考
  RewriteRule ^category/list-([0-9]+).html$ /plus/list.php?tid=$1
  RewriteRule ^category/list-([0-9]+)-([0-9]+)-([0-9]+).html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
  RewriteRule ^archives/view-([0-9]+)-([0-9]+).html$ /plus/view.php?aid=$1&pageno=$2
        RewriteRule ^index.html$ index.php

注:1.以上提供的DedeCms伪静态修改以及规则都是按照个人的修改步骤来的,仅供参考,你可以根据站点的实际情况作相应调整;2.伪静态实现思路,即根据理想的URL结构写好伪静态规则,然后对程序进行相应修改,并没有你想象中的那么复杂;3.不会程序、不会正则都没有关系,但是思路一定要清晰,还有就是禁得住“折腾”,多研究,搞透了,对提升自己也有极大好处。

 很多人看了这篇dedecms伪静态内容后,还是修改不好,程序
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除! 织梦伪静态

相关文档推荐

织梦dedecms调用当前栏目文章数的方法 这篇文章给大家分享的是有关织梦dedecms调用当前栏目文章数的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 做模板时,经常需要为每个栏目加上此栏目的文章数。和大家分享下实现的方法,此方法适合5.6及5.7、5.7sp1其它 DEDECMS织梦复制https链接网站图片无法本地化的解决办法 现在许多网站使用了SSL技术,网站采用https链接,我们在复制https链接网站的内容,发现图片无法本地化,那么我们想要将这些图片本地化,要怎么操作呢? 第一步: 找到dede/inc/inc_archives_functions.php (注:前边红色的dede目录是您的后台目录) 定位到 dedecms织梦文档内容自动关联tag标签加入内链的方法 最终实现效果如下图:内容生成之后会自动加上本篇文章的tags标签(文档生成时候自动加入,编辑器中内容实际没加入,更有利) 实现教程 1、后台-系统-核心设置-关键字替换,选择【是】 2、后台-系统-其他选项-关键词替换次数,填【1】或者【0】 1:表示文档内 dedecms织梦图集删除图片提示已删除但是实际未删除的解决办法 我们传图集后需要对图片进行删除,但是系统提示已删除,实际还保存在网站目录里,这个要怎么解决呢? 打开 dedeswfupload.php 找到 if(!file_exists($imgfile) !is_dir($imgfile) preg_match(#^.$cfg_medias_dir.#, $imgfile)) 替换成: if(file_exists($i 织梦基本参数设置增加logo图片上传功能 我们在使用织梦建站时,后台是没有Logo上传功能的,对于新手来说,更换Logo只能使用FTP来实现更换还是比较麻烦的。我们要在织梦后台管理里面增加LOGO 上传 的功能要怎么操作呢? 织梦基本参数设置中增加图片变量类型 首先在dede网站后台 - 基本参数设置中添 织梦cms搜索页面不能使用php标签的解决办法 织梦dedecms的搜索页面,不能使用{dede:php}标签,这样让搜索页少了很多的灵活性,今天织梦模板网给出如下解决办法,让织梦的搜索页面也能支持php标签 1、找到include/arc.searchview.class.php,将如下函数加入到SearchView类里面 /** * 解析模板,对固定的 织梦安装使用织梦二次开发织梦优化织梦标签dedecms教程织梦安全 织梦资讯网 织梦模板 dede 外语学校 织梦鬼故事 竞价网站源码 竞价培训网 门户网站 织梦二次开发 织梦笑话网 dedecms笑话网 织梦源码 网站建设 搞笑图片 织梦教程 旅游网站源码 织梦旅游网 学校培训 html5 企业织梦源码 医院源码 后台样式 移动营销页 整形医院 大学医院 新手建站 客服代码 洗衣机维修 企业网站 淘宝客 导航菜单 教育网站 学校源码 装修网站 装修模板 美容整形 女性健康 妈妈网 机械源码 建站公司 珠宝首饰 苹果网站 手机资讯 美女图片 织梦模版打包 妇科源码 安卓市场源码 男性时尚网 健康之家 app应用网站 笑话网站 下载站 美女图片网 中医院网站 家装网站源码 QQ网站 标牌网站 魔兽世界网 淘宝客源码 YY网站源码 别墅设计网站 服装搭配网 宝宝起名网 站长网站 婚庆网站 脑科医院源码 笑话源码 肝胆医院 意外怀孕源码 工作室

相关推荐

扫码关注

qrcode

QQ交谈

回顶部