怎样将discuz的动态页面生成HTML的静态页面,以便搜索引擎更好的收录我的网站呢?请高手多多指导!

怎样将discuz的动态页面生成HTML的静态页面,以便搜索引擎更好的收录我的网站呢?请高手多多指导!,第1张

discuz无法生成静态页面,你所看到的discuz静态页面,是discuz所在的服务器使用了Apache这类支持urlrewrite的网站容器,urlrewrite可以将你看到的原本的url改写成任意的url

最常见的urlrewrite像xxphp/id/73或者/xx/id/73

还有的把xxphp改写成xxdo,当然discuz也是这个原理。想要实现,需要服务器的支持

discuz论坛程序是很不错的,国内很多大型论坛都是用discuz建站的,后台可以设置优化功能,设置标题和关键词还有描述等,当然这跟你的整站的发帖量还有原创帖子是有关系的,你的原创帖子很多的话,那你论坛的收录也会很好。

首先

打开source\function下的function_corephp

找到

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,

);

然后进入网站后吧->''seo设置"->"url静态化"

在"论坛主题列表页"的格式中填写:{fid}/{page}

在"论坛主题内容页"的格式中填写:{fid}/m{tid}/{page}

然后工具,更新缓存,即实现了版块目录化,贴子目录化

在"论坛"-"版块管理"中的"绑定别名"即是版块目录名

把下面这段代码复制到你的htaccess文件里,如果没有就新建一个,放到网站跟目录

# 将 RewriteEngine 模式打开

RewriteEngine On

# 修改以下语句中的RewriteBase 后的地址为你的论坛目录地址,如果程序放在根目录中,为 /,如果是相对论坛根目录是其他目录则写为 /{目录名},如:在bbs 目录下,则写为 /bbs

RewriteBase /

# Rewrite 系统规则请勿修改

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^topic-(+)\html$ portalphpmod=topic&topic=$1&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^article-([0-9]+)-([0-9]+)\html$ portalphpmod=view&aid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^(\w+)/([0-9]+)$ forumphpmod=forumdisplay&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^thread-([0-9]+)-([0-9]+)\html$ forumphpmod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^group-([0-9]+)-([0-9]+)\html$ forumphpmod=group&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^space-(username|uid)-(+)\html$ homephpmod=space&$1=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^([a-z]+)-(+)\html$ $1phprewrite=$2&%1

RewriteCond %{QUERY_STRING} ^()$

RewriteRule forum-([0-9a-z_]+)-([0-9]+)\html$ forumphpmod=forumdisplay&fid=$1&page=$2&%1

## 保留前面的部分可以不影响已经被搜索引擎收录的页面

RewriteCond %{QUERY_STRING} ^()$

RewriteRule /([0-9]+)(/([0-9]+))(/)$ forumphpmod=viewthread&tid=$1&extra=page\%3D$5&page=$3&%1 [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{QUERY_STRING} ^()$

RewriteRule ^([0-9a-z_]+)(/([0-9]+))(/)$ forumphpmod=forumdisplay&fid=$1&page=$3&%1 [L,NC]

看你是什么情况了1新论坛,直接开启静态化,那么你的动态地址根本没有公布出来,有了和没有是一样的,保证以后别用就可以了。2老论坛,之前是动态地址,而后静态化了。那你万万不能直接屏蔽动态地址,因为动态地址都已经收录了啊,正确的做法是对动态地址做301

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎样将discuz的动态页面生成HTML的静态页面,以便搜索引擎更好的收录我的网站呢?请高手多多指导!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情