Discuz! X3.4 SEO手机伪静态设置原理和方法:
实现Discuz手机触屏版伪静态,统一PC端和手机触屏版的访问地址,有利于手机版的SEO优化,方便搜索引擎移动端适配,提升站点移动端收录量(移动端搜素已超越PC端搜索)实现Discuz手机触屏版伪静态,统一PC端和手机触屏版的访问地址,有利于手机版的SEO优化,方便搜索引擎移动端适配,提升站点移动端收录量(移动端搜素已超越PC端搜索)
通过查找,发现电脑版设置伪静态的方法
1,通过后台设置seo选项
规则如下:
[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中的函数
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,修改成如下所示:
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中增加函数
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; }
这样就可以实现手机伪静态
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛