1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

分享:Discuz! x2论坛url标准化全攻略

本帖由 kobelltw2012-09-14 发布。版面名称:源码讨论

  1. kobelltw

    kobelltw New Member

    注册:
    2012-09-13
    帖子:
    253
    赞:
    0
    Discuz! x2论坛的功能已经非常强大了,但是在seo优化方面,url的标准化方面还有一些瑕疵。
    这次分享的discuz! x2论坛url标准化主要包含两方面:一是彻底实现伪静态,二是去除同一页面出现不同url可访问的情况。
    先来看一下discuz! x2论坛中出现问题的地方:
    (1) 主题内容页的面包屑导航中,论坛版块的连接是动态的

    (2)主题内容页的两个返回按钮地址是动态的
    (3)主题内容页的复制链接是动态URL

    (4)同一主题在列表页的不同页数,进入主题的URL地址不同。
    例如,一篇文章在列表页第一页时链接地址为: 域名/thread-xxx-1-1.html,当这篇文章到第二页的时候链接地址就变成了: 域名/thread-xxx-1-2.html
    针对以上URL地址不规范的状况,我们需要按一下步骤操作即可:
    (1)打开 /source/module/forum/forum_viewthread.php 第123行找到以下代码:
    $navigation .= '<em>›</em><a href="'.$t_link.'">'.strip_tags($_G['forum']['name']).'</a>';
    替换为:
    $navigation .= '<em>›</em>'.'<a href="forum.php?mod=forumdisplay&fid='.$_G['fid'].'">'.$_G['forum']['name'].'</a>'.$forumarchive[$_G['gp_archiveid']]['displayname'];
    这样就把主题内容页的面包屑导航中的动态地址变成伪静态地址了
    (2)在 /source/module/forum/forum_viewthread.php 第103行、108行找到以下代码:
    $upnavlink = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].($_G['gp_extra'] && !IS_ROBOT ? '&'.$_G['gp_extra']:");
    都修改为:
    $upnavlink = 'forum.php?mod=forumdisplay&fid='.$_G['fid'].($_G['gp_extra'] &&!IS_ROBOT ? '&'.$_G['gp_extra'] : ");
    这样,主题内容页的两个返回按钮就是伪静态地址了
    (3)打开 /template/default/forum/viewthread.htm 在大约200行左右找到以下代码:
    <a href=”forum.php?mod=viewthread&tid=$_G[tid]$fromuid” title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>
    修改为:
    < href="forum.php?mod=viewthread&tid=$_G[tid]" title="{lang share_url_copy_comment}">[{lang share_url_copy}]</a>
    这样,就把主题内容页的复制链接的动态地址变成伪静态地址了
    (4)在后台设置主题内容的伪静态规则,就可以把内容页的地址标准化了

    (5)设置完之后,记得在后台更新缓存。