成都网站建设
扫描关注木子网络微信号

扫一扫微信二维码

dedecms织梦tag标签伪静态方法教程

木子网络2017-07-14经验分享

  织梦dedecms最大的优势就是可以静态生成全站,静态网站比动态网站更加利于搜索引擎优化,而织梦对于tag标签这种更新频率很大的页面没有采用静态化,而我们为了达到更好的网站优化效果,怎么把tag标签页面静态化或者伪静态化呢?(如果还没有不会制作tag标签页的可以查看这篇文章《dedecms织梦tag标签页制作方法》)下面木子网络为大家整理了下关于dedecms织梦tag标签伪静态的方法。如果有需要静态化标签插件的,后面木子网络会共享给大家。

  一、tags标签页首页伪静态

  这里就是常说的tags.php页面的伪静态了,因为这个页面本身生成的就是一个伪静态的页面,只是地址是.php结尾,不少人喜欢改为.html的,那么这里只需要做好伪静态规则就可以了,规则代码见文末,主要讲IIS7和apache的伪静态规则。

  二、Tags标签列表页伪静态

  tag标签列表页即为每个关键词的相关文章列表展示页面,dedecms默认的样式为/tags.php?/标签关键词/,这样明显是个动态页面,我们要做修改变成一个伪静态页面,木子网络就以做成/tags/标签关键词.html这个样式为例,来作为教程例子。

  1.修改\include\taglib\tag.lib.php文件,大概在87行,把:

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

  修改为:

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

  2.修改\include\arc.taglist.class.php文件,大概在457行,把:

$purl = $this->GetCurUrl();
$purl .= "?/".urlencode($this->Tag);

  修改为:

$purl = $cfg_cmsurl;
$purl .= "/tags/".urlencode($this->Tag);

  这里还有一个问题就是,首页的列表样式会生成一个/tags/keys/1.html这样的,很显然我们不需要的,这里也要做下修改,\include\arc.taglist.class.php文件,大概在506行,把

else
{
    $listdd.="<li><a href='".$purl."/$j/'>".$j."</a></li>\r\n";
}

  修改为:

else
{
    if($j == 1)
{
    $listdd.= "<a href='".$purl.".html'>".$j."</a>\r\n";
}
else
    $listdd.="<a href='".$purl."/$j.html'>".$j."</a>\r\n";
}

  加个判断,如果是第一页就直接生成/tags/keys.html这种地址格式,就不会生成1.html这样的后缀,实现地址格式seo化。

  三、Tags标签列表页分页链接伪静态

  做完前两步修改,我们会发现,tags首页和列表页实现了伪静态,但是列表页分页是/tags/关键词/2/这样的形式,而且会出现404错误,这里我们还要进一步做修改,实现像/tags/关键词/2.html这种样式。

  1.修改\include\arc.taglist.class.php文件,大概在463行,把:

$prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n";
$indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n";

  修改为(其实就是在链接后加了个后缀.html):

$prepage.="<a href='".$purl."/$prepagenum.html'>上一页</a>\r\n";
$indexpage="<a href='".$purl.".html'>首页</a>\r\n";

  2.修改\include\arc.taglist.class.php文件,大概在472行,把:

$nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n";
$endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n";

  修改为(其实就是在链接后加了个后缀.html):

$nextpage.="<a href='".$purl."/$nextpagenum.html'>下一页</a>\r\n";
$endpage="<a href='".$purl."/$totalpage.html'>末页</a>\r\n";

  3.修改\include\arc.taglist.class.php文件,大概在508行,把:

$listdd.="<li><a href='".$purl."/$j/'>".$j."</a></li>\r\n";

  修改为(其实就是在链接后加了个后缀.html):

$listdd.="<a href='".$purl."/$j.html'>".$j."</a>\r\n";

  IIS7及以上服务器伪静态规则:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <!-- 伪静态tag首页 -->
                <rule name="Redirecttags" stopProcessing="true">
                    <match url="^tags.html" />
                    <action type="Rewrite" url="tags.php" />
                </rule>
                <!-- 伪静态tag列表 -->
                <rule name="Redirecttags1" stopProcessing="true">
                    <match url="^tags/(\w+).html" />
                    <action type="Rewrite" url="tags.php?/{R:1}"/>
                </rule>
                <!-- 伪静态tag分页 -->
                <rule name="Redirecttagsl" stopProcessing="true">
                    <match url="^tags/(\w+)/([0-9]*).html" />
                    <action type="Rewrite" url="tags.php?/{R:1}/{R:2}"/>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

  apache服务器伪静态规则 :

RewriteRule ^tags.html /tags.php
RewriteRule ^tags/(.*)(?:(\?.*))*\.html$ tags\.php\?\/$1
RewriteRule ^tags/(.*)\/(?:(\?.*))*\.html$ tags\.php\?\/$1\/
RewriteRule ^tags/(.*)\/([0-9])(?:(\?.*))*\.html$ tags\.php\?\/$1\/$2
RewriteRule ^tags/(.*)\/([0-9])\/(?:(\?.*))*\.html$ tags\.php\?\/$1\/$2\/

转载请注明:木子网络 » http://www.muziwl.com

文章标签
dedecms教程
dedecms
tag