怎样实现discuz页面的随机静态化

本文介绍Discuz论坛如何通过URL重写实现随机静态化,包括帖子、标签等页面的随机静态化方法,旨在提高SEO排名及广告效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

效果介绍:

同一个页面可以由多个静态地址访问,比如在论坛帖子列表中,tid=1的帖子,可能会显示thead-1-1.html的访问地址,也可能是yahoo-thread-1-1.html,更多地址都可以,只要你设定你的随机种子。

参考网站:深圳科技园在线

本文目的:通过随机静态化,可实时在url中含有一些你感兴趣的关键字,url中包含的关键字的作用可体现在:seo排名,adsense广告等。本文只介绍技术实现,不涉及具体功能和风险分析,使用本方法请慎重。

discuz中如何实现静态化的?

discuz论坛已经可以通过url重写(iis添加API:Rewrite.dll),分别实现归档、论坛、帖子、个人信息、空间、标签(discuz6.0以上)的静态化。

在静态化规则中实现: 

RewriteRule  ^ (. * ) / archiver / ([a - z0 - 9 - ] + .html)$ $ 1 / archiver / index.php ? $ 2
RewriteRule 
^ (. * ) / forum - ([ 0 - 9 ] + ) - ([ 0 - 9 ] + ).html$ $ 1 / forumdisplay.php ? fid = $ 2 & page = $ 3
RewriteRule 
^ (. * ) / thread - ([ 0 - 9 ] + ) - ([ 0 - 9 ] + ) - ([ 0 - 9 ] + ).html$ $ 1 / viewthread.php ? tid = $ 2 & extra = page % 3D$ 4 & page = $ 3
RewriteRule 
^ (. * ) / profile - (username | uid) - (. + ).html$ $ 1 / viewpro.php ? $ 2 = $ 3
RewriteRule 
^ (. * ) / space - (username | uid) - (. + ).html$ $ 1 / space.php ? $ 2 = $ 3
RewriteRule 
^ (. * ) / tag - ([A - Za - z0 - 9 % ] + ).html$ $ 1 / tag.php ? name = $ 2

实现举例:

tag.php?name=[tagname]   => tag-[tagname].html    

forumdisplay.php?fid=[fid]&page=[page] =>forum-[fid]-[page].html

viewthread.php?tid=[tid]&extra=page#[reply]&page=[page]    =>thread-[tid]-[page]-[reply].html

并在include/global.func.php 文件中通过正则替换将动态链接地址转为静态链接地址。

function  rewrite_thread( $tid ,   $page   =   0 ,   $prevpage   =   0 ,   $extra   =   '' ) {
    
return   ' <a href=" ' . $tid . ' - ' . ( $page   ?   $page   :   1 ) . ' - ' . ( $prevpage   &&   ! IS_ROBOT  ?   $prevpage   :   1 ) . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}

function  rewrite_forum( $fid ,   $page   =   0 ,   $extra   =   '' ) {
    
return   ' <a href="forum- ' . $fid . ' - ' . ( $page   ?   $page   :   1 ) . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}

function  rewrite_space( $uid ,   $username ,   $extra   =   '' ) {
    
$GLOBALS [ ' rewritecompatible ' &&   $username   =   rawurlencode ( $username );
    
return   ' <a href="space- ' . ( $uid   ?   ' uid- ' . $uid   :   ' username- ' . $username ) . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}

function  rewrite_tag( $name ,   $extra   =   '' ) {
    
$GLOBALS [ ' rewritecompatible ' &&   $name   =   rawurlencode ( $name );
    
return   ' <a href=" ' . $name . ' . ' . rawurldecode ( $name ) . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}

三步实现随机静态化的方法(仅以tag和thread为例子):

1 在url重写规则中,将tag,thread的规则写为:

RewriteRule  ^ (. * ) / (.* )thread - ([ 0 - 9 ] + ) - ([ 0 - 9 ] + ) - ([ 0 - 9 ] + ).(. * )html$ $ 1 / viewthread.php ? tid = $ 3 & extra = page % 3D$ 4 & page = $ 4
RewriteRule 
^ (. * ) / (.* )tag - ([A - Za - z0 - 9 % ] + ).(. * )html$ $ 1 / tag.php ? name = $ 3

2 在include/global.func.php 文件中添加seo_rand_str()函数:

function  seo_rand_str(){
$string [ 1 =   ' shenzhen ' ;
$string [ 2 =   ' hongkong ' ;
$string [ 3 =   'domains- yahoo ' ;
$string [ 4 =   'beauty ' ;
return   $string [ rand ( 1 , 4 )];
}

这里只列出了4个随机种子示范,可根据实际情况修改或增加(不要太多了)。

注意:随机字符串不要包含中文,最好是标准域名格式(英文字母,-,数字)。

3修改rewrite_thread和rewrite_tag函数为

function  rewrite_thread( $tid ,   $page   =   0 ,   $prevpage   =   0 ,   $extra   =   '' ) {
    
return   ' <a href=" '.seo_rand_str().' -thread- ' . $tid . ' - ' . ( $page   ?   $page   :   1 ) . ' - ' . ( $prevpage   &&   ! IS_ROBOT  ?   $prevpage   :   1 ) . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}

function  rewrite_tag( $name ,   $extra   =   '' ) {
    
$GLOBALS [ ' rewritecompatible ' &&   $name   =   rawurlencode ( $name );
    
return   ' <a href=" '.seo_rand_str().' -tag- ' . $name . ' .html" ' . stripslashes ( $extra ) . ' > ' ;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值