咨询邮箱 咨询邮箱:mail@yaanidc.com 咨询热线 咨询热线:13795856919 微博 微信
discuz目录化伪静态自定义伪静态非常利于SEO优化
发表日期:2018-05-31    文章编辑:沈海龙    浏览次数:
SEO伪静态为Discuz!目录化伪静态插件,本插件可以实现Discuz!版块与帖子URL目录化伪静态,以及实现更灵活的各种类型的个性化URL设置,和对Discuz!其它伪静态功能比如像标签、主题分类等伪静态进行补充。
---------------------------------
高于X3.2版本不支持。
---------------------------------
 
实现版块URL目录化伪静态;
实现帖子URL目录化伪静态;
支持将帖子标题写进URL,实现帖子URL中文化;
实现分区伪静态;
实现主题分类列表页伪静态;
实现分类信息列表页伪静态;
实现列表页帖子入口统一,比如主题分类和分类信息帖子链接、精华、热门、投票、各种筛选条件下的帖子链接,实现与普通帖子链接统一;
实现标签伪静态,支持将标签写进URL。
本插件只需对服务器伪静态规则进行配置,伪静态规则插件后台智能生成,无需修改任何Discuz!系统文件,适用于所有使用Discuz!默认链接的模板,便于升级,便于切换模板。
本插件主要支持Apache,Nginx,IIS6/7/8,Litespeed,Kangle等服务器,暂不支持Lighttpd,Zues等其它服务器。
 
安装方法
将插件文件夹上传至source/plug/里。
从后台安装并启用。
进行设置后确认,每次设置之后都要更新一下伪静态规则(规则是智能生成的,已经对一些常见的设置进行了判断)。
然后点击插件导航的“查看rewrite规则”,将相应的重写规则复制到服务器相应的位置即可。
如果是Apache虚拟主机,复制规则到论坛根目录的.htaccess文件中;
如果是Apache独立主机,复制规则到服务器apache/conf/httpd.conf文件中,独立主机如果开启htaccess功能的话不要在论坛根目录放有.htaccess文件;
如果是Nginx主机,一般是复制规则到服务器nginx/conf/nginx.conf文件中,放在server{ }里面一般也是location / { 的前面;有些主机是通过include引用规则的,要复制到被引用的文件里面;
IIS6主机提供了ISAPI_Rwrite2.9的httpd.ini规则,将规则放在空间根目录,如果是ISAPI_Rewrite3.x版本还要按说明修改一下规则。
如果是IIS7主机,复制规则到web.config文件中,规则前不要有空行;一般放在空间的根目录;
各主机的伪静态设置可能不一样,Apache独立主机和Nginx主机,每次设置并更新规则后都要重启一下。
标签默认是拒绝蜘蛛的,标签伪静态后可以将论坛根目录下misc.php文件内的 $discuz->reject_robot(); 一句删除掉,要不然的话搜索引擎不收录。
 
***此插件并不会改变后台SEO设置中伪静态URL格式,所以在配合自定义页面使用时,需要修改伪静态URL格式并修改系统文件,如下:
第一步,后台——SEO设置:
论坛主题列表页 {fid}/{page}
论坛主题内容页 {fid}/qq{tid}/{page}
这里的qq是为和插件的伪静态规则统一,如果要改成其他字母就要把此插件提供的伪静态规则内qq也改了,不统一打不开网页。
第二步,修改系统文件:
在source/function/function_core.php内查找:
    if($type == 'forum_forumdisplay') {
           list(,,, $fid, $page, $extra) = func_get_args();
           $r = array(
               '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
               '{page}' => $page ? $page : 1,
           );
       } elseif($type == 'forum_viewthread') {
           list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
           $r = array(
               '{tid}' => $tid,
               '{page}' => $page ? $page : 1,
               '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
           );
 
替换为:
    if($type == 'forum_forumdisplay') {
            list(,,, $fid, $page, $extra) = func_get_args();
            $r = array(
                '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
                '{page}' => $page ,
            );
        } elseif($type == 'forum_viewthread') {
            list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
            $fid = DB::result_first("SELECT fid FROM ".DB::table('forum_thread')." WHERE tid = '$tid'");
            $r = array(
                '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
                '{tid}' => $tid,
                '{page}' => $page ,
                '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
            );
 
关于X3.3、X3.4版本启用后空白的问题,暂时没有好的解决方案,不过可以临时解决下:
插件文件rewrite.class.php,将$lwh_search = array(……里面的内容注释掉……);
就可以使用了,这个$lwh_searc好像是搜索伪静态?可能是它里面的写法有些问题,不知如何修复只好暂时注释掉。
本文来自cms 笔记沈海龙老师
discuz目录化伪静态插件

0

相关文章推荐
在线客服