Discuz! X3.4 SEO手机伪静态设置原理和方法:
实现Discuz手机触屏版伪静态,统一PC端和手机触屏版的访问地址,有利于手机版的SEO优化,方便搜索引擎移动端适配,提升站点移动端收录量(移动端搜素已超越PC端搜索)实现Discuz手机触屏版伪静态,统一PC端和手机触屏版的访问地址,有利于手机版的SEO优化,方便搜索引擎移动端适配,提升站点移动端收录量(移动端搜素已超越PC端搜索)
通过查找,发现电脑版设置伪静态的方法
1,通过后台设置seo选项
规则如下:
</>code
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- # Protect httpd.ini and httpd.parse.errors files
- # from accessing through HTTP
- RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4
- RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5
- RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5
- RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6
- RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=group&fid=$2&page=$3&$5
- RewriteRule ^(.*)/space-(username|uid)-(.+)\.html(\?(.*))*$ $1/home\.php\?mod=space&$2=$3&$5
- RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5
- RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html(\?(.*))*$ $1/archiver/index\.php\?action=$2&value=$3&$5
然后找到source/function/function_core.php中的函数
</>code
- function rewriteoutput($type, $returntype, $host) {
- global $_G;
- $fextra = '';
- 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,
- );
- } elseif($type == 'home_space') {
- list(,,, $uid, $username, $extra) = func_get_args();
- $_G['setting']['rewritecompatible'] && $username = rawurlencode($username);
- $r = array(
- '{user}' => $uid ? 'uid' : 'username',
- '{value}' => $uid ? $uid : $username,
- );
- } elseif($type == 'home_blog') {
- list(,,, $uid, $blogid, $extra) = func_get_args();
- $r = array(
- '{uid}' => $uid,
- '{blogid}' => $blogid,
- );
- } elseif($type == 'group_group') {
- list(,,, $fid, $page, $extra) = func_get_args();
- $r = array(
- '{fid}' => $fid,
- '{page}' => $page ? $page : 1,
- );
- } elseif($type == 'portal_topic') {
- list(,,, $name, $extra) = func_get_args();
- $r = array(
- '{name}' => $name,
- );
- } elseif($type == 'portal_article') {
- list(,,, $id, $page, $extra) = func_get_args();
- $r = array(
- '{id}' => $id,
- '{page}' => $page ? $page : 1,
- );
- } elseif($type == 'forum_archiver') {
- list(,, $action, $value, $page, $extra) = func_get_args();
- $host = '';
- $r = array(
- '{action}' => $action,
- '{value}' => $value,
- );
- if($page) {
- $fextra = '?page='.$page;
- }
- } elseif($type == 'plugin') {
- list(,, $pluginid, $module,, $param, $extra) = func_get_args();
- $host = '';
- $r = array(
- '{pluginid}' => $pluginid,
- '{module}' => $module,
- );
- if($param) {
- $fextra = '?'.$param;
- }
- }
- $href = str_replace(array_keys($r), $r, $_G['setting']['rewriterule'][$type]).$fextra;
- if(!$returntype) {
- return '<a href="'.$host.$href.'"'.(!empty($extra) ? stripslashes($extra) : '').'>';
- } else {
- return $host.$href;
- }
- }
这是实现电脑版伪静态的处理函数
在移动版中,找到source\class\helper\helper_mobile.php中的函数 mobilereplace,修改成如下所示:
</>code
- public static function mobilereplace($file, $replace) {
- if(strpos($replace, 'mobile=') === false) {
- if(strpos($replace, '?') === false) {
- $replace = 'href="'.$file.$replace.'?mobile='.IN_MOBILE.'"';
- } else {
- $replace = 'href="'.$file.$replace.'&mobile='.IN_MOBILE.'"';
- //$replace=str_replace('&mobile=2','',$replace);
- $replace=mbrewriteoutput($replace);
- }
- return $replace;
- } else {
- return 'href="'.$file.$replace.'"';
- }
- }
然后在source/function/function_core.php中增加函数
</>code
- function mbrewriteoutput($eurl) {
- if(strstr($eurl,"forum.php?mod=forumdisplay&fid=")){
- $eurl=str_replace('&mobile=2','',$eurl);
- $fidarr=explode("fid=",$eurl);
- $fid=$fidarr[1];
- $fid=str_replace('"','',$fid);
- $eurl=str_replace('forum.php?mod=forumdisplay&fid='.$fid,'forum-'.$fid.'-1.html',$eurl);
- $eurl=str_replace('forum.php?mod=forumdisplay&fid='.$fid,'forum-'.$fid.'-1.html',$eurl);
- return $eurl;
- }elseif(strstr($eurl,"forum.php?mod=viewthread&tid=")){
- $eurl=str_replace('&extra=page%3D1&mobile=2','',$eurl);
- $tidarr=explode("tid=",$eurl);
- $tid=$tidarr[1];
- $tid=str_replace('"','',$tid);
- $eurl=str_replace('forum.php?mod=viewthread&tid='.$tid,'thread-'.$tid.'-1-1.html',$eurl);
- $eurl=str_replace('forum.php?mod=viewthread&tid='.$tid,'thread-'.$tid.'-1-1.html',$eurl);
- return $eurl;
- }elseif(strstr($eurl,"forum.php?forumlist=1&mobile=2")){
- $eurl=str_replace('forum.php?forumlist=1&mobile=2','https://bbs.365jz.com/',$eurl);
- return $eurl;
- }
- return $eurl;
- }
这样就可以实现手机伪静态
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛