小冬SEO

织梦全站伪静态设置方法和教程,伪静态链接个性化处理方法

2021-07-22 9:22:35 2907 织梦二开

  织梦全站伪静态设置有什么好处呢,小编原来一直是生成静态页面,这样导致网站后台后很多html文件,这样的文件多了,自然消耗掉系统大量内存,如果你的内容少,倒还没什么关系,如果你的内容上万,甚至上十万,那就需要动态链接静态化处理了,也就是我们说的伪静态设置。

  下面小冬seo就来按着流程为大家分享一下如何实现织梦全站伪静态设置,同时还能实现你的伪静态链接多样化和个性化设置,结合了网上的教程和自己琢磨的方法。

  1、织梦伪静态设置前提条件

  你的服务器支持伪静态设置,也就是URL重写设置

  这点也很重要,在服务器支持伪静态的前提条件下,小冬seo了解到,一般的虚拟主机和服务器的配置文件是web.config或.htaccess文件,里面的配置参数我不是很懂,不过你可以让服务商的技术帮忙弄弄,不过具体的URL规则还是需要自己来写。

  本来小编也不会写规则,不过在网上搜了那么多,依葫芦画瓢也能略懂一二。下面小冬就来介绍以下伪静态配置和规则的相关技术。

web.config规则配置文件截图

.htaccess配置规则文件截图

  2、dedecms站点伪静态设置

  系统:后台–》系统–》核心设置 找到:是否使用伪静态: 选择是 确定保存。

  首页:后台—>生成—>更新主页HTML—>动态浏览(删除根目录index.html文件)

  栏目:栏目列表选项—>使用动态页,如果批量处理,可参考教程:织梦《栏目列表选项》批量设置《使用动态页》

  内容:发布选项—>仅动态浏览,如果批量处理,可参考教程:织梦内容《发布选项》批量改为《仅动态浏览》

  3、修改站点URL配置样式

  ①内容页(文章页)URL重写

  DedeCms V5.3、DedeCms V5.5、DedeCms V5.6版本,打开/include/channelunit.func.php进行修改

  DedeCms V5.7版本,打开/include/helpers/channelunit.helper.php进行修改

  方法相同,用DW或者notepad++打开,ctrl+f查找

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

方法一修改为:

//动态文章
if($cfg_rewrite == 'Y')
{
return "/cms/view-".$aid.'-1.html';
}

方法二修改为(这种较难,不懂的可以不采用,小编就不多做说明):

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

当然小冬到了后面测试发现使用$typedir这种的方法好像都不行了,就是调用文件目录名称,始终在会出现plus或者%7Bcmspath%7D这样的乱码状况,然后又只有找方法,针对方法二的改进方案如下:

方法三(基础不好的同学不要用,就用第一种方法,将目录层级文件名写死):

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

说明:

/cms/:是根目录下的第一个层级。例如:http://www.cdseoyh.cn/cms/

view-:表示链接的样式,没有什么实质上的意义。

$aid:这个表示的是文章的唯一ID号。

-1.html:这个表示的是所有文章都以-1.html结尾,当然你可以将“-1”删掉,将“view-”删掉,这样文章的链接则是以id.html结尾。

例如:

未删掉前:http://www.cdseoyh.cn/cms/view-31-1.html

已删掉后:http://www.cdseoyh.cn/cms/31.html

②栏目页(频道页)URL重写

同样的道理,这里需要修改栏目的URL样式,还是上面的文件/include/helpers/channelunit.helper.php或/include/channelunit.func.php

ctrl+f查找:

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

替换为:

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

或者修改为(这种较难,不懂的可以不采用,小编就不多做说明):

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

这里的参数小冬就不多做说明了,和上面的类比一下就明白了。

注意:这里我们主要做的是给dedecms站点自身重定义URL,想要实现服务器也能采用站点自定义的URL样式,就需要给服务器配置URL参数。

4、添加服务器URL配置参数。

.htaccess文件URL配置参数如下:

RewriteEngine On
RewriteRule ^cms/list-([0-9]+).html$ /plus/list.php?tid=$1
RewriteRule ^cms/view-([0-9]+)-1.html$ /plus/view.php?arcID=$1

web.config文件URL配置参数如下:

<configuration>
<system.webServer>
<rewrite>
<rules>
<!–文章–>
<rule name="arc-cms">
<match url="^cms/view-([0-9]+).html$" />
<action type="Rewrite" url="/plus/view.php?arcID={R:1}" />
</rule>
<!–列表–>
<rule name="list-cms">
<match url="^cms/list-([0-9]+).html$" />
<action type="Rewrite" url="plus/list.php?tid={R:1}"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

注意要点

①参数用“()” 括起来 ,使用 {R:1}来获得参数

②多个参数中间用 & 分割

③name切记不能写一样

以上是小冬亲自测试过了的,两种类型的文件都测试过,且有效,能用。

如果你配置规则确定没问题,但是访问列表或者文章时,还是出错或者是访问到了首页,那么就是根目录的配置文件有问题,有可能是你某些地方操作不当,最好喊主机服务商给你看看,然后你看看人家修改的地方,你自己自然就明白了,我就是这么学出来的。当然小编也找了大量参考资料,对比得出的这样的经验,很实用。

注:以上只是列表页和内容详情页的URL参数修改和参数配置,还不包括列表页翻页伪静态,内容页翻页伪静态,tag链接伪静态、搜索页伪静态。如果要实现这几个伪静态,请继续看下面教程,也就是比葫芦画瓢,希望大家头脑灵活处理。

dedecms系统其它链接伪静态操作教程

1、列表翻页:

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

查找:

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

替换为:

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

注:“'list-”的样式可以随意变,如果不修改,默认也是这个样式,所以可以不用修改。

但是织梦伪静态后的翻页链接有个极大的问题,那就是链接多了一个id号

例如:www.cdseoyh.cn/cms/list-10-12-2.html

这里多了的id号是12,这个12是当前栏目下的文档数量,所以是个变量,那么也就意味着一旦新增文档,翻页的链接就会不断变化。

于是小编就在arc.listview.class.php文件中找解决办法,功夫不负有心人,足足试了两个小时,终于搞定了

查找:

$geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";

替换成:

$geturl = "tid=".$this->TypeID."&TotalResult=".$this->Total."&";

然后查找:

$plist = str_replace('&TotalResult=', '-', $plist);

替换成:

$plist = str_replace('&TotalResult=', '', $plist);

于是链接的样式终于变成了我想要的样式。

当然还需要添加配置参数

.htaccess文件URL配置参数如下:

RewriteRule ^cms/list-([0-9]+)-([0-9]+).html$ /plus/list.php?tid=$1&PageNo=$2

web.config文件URL配置参数如下:

<!–列表翻页–>
<rule name="list-cms-2">
<match url="^cms/list-([0-9]+)-([0-9]+).html$"/>
<action type="Rewrite" url="plus/list.php?tid={R:1}&amp;PageNo={R:2}" />
</rule>

未完待续,以上是dedecms的伪静态设置教程,包含了首页伪静态设置及配置参数、栏目页伪静态设置及配置参数、详情页伪静态设置及配置参数、栏目页分页伪静态设置及配置参数。不包含文章页分页伪静态设置方法、不包含tag标签链接伪静态设置,以及搜索结果伪静态设置,,以后有空了,小编就继续为大家分享剩下的伪静态设置。

版权保护: 本文由小冬SEO编辑发布,转载请保留链接: https://www.cdseoyh.cn/cms/31.html

小冬SEO 草根seoer,从事搜索引擎关键词优化,喜欢学习专研各类SEO优化技巧—小冬SEO博客
  • 138文章总数
  • 2908本页访问
  • 运营时间
  • 标签

    友情链接

      {dede:sql sql="select url,webname from dede_flink where typeid = (select id from dede_flinktype where typename=~typename~)"}
    • [field:webname/]
    • {/dede:sql}