多语言展示
当前在线:358今日阅读:145今日分享:43

Discuz3.2设置伪静态的方法

在网上翻遍了都没翻到iis6的httpd.ini文件,以下是之前自己保存的一份httpd.ini文件原文,亲测对Discuz3.2有效。
工具/原料

iis服务器6.0

添加伪静态规则(以Nginx为例)

rewrite ^([^\.]*)/thread-([0-9]+)-f([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&fromuid=$3 last;rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-u([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&authorid=$4&page=$3 last;rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-o([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&ordertype=$4&page=$3 last;rewrite ^([^\.]*)/thread-([1-9][0-9]*)-album\.html$ $1/forum.php?mod=viewthread&tid=$2&from=album last;rewrite ^([^\.]*)/forum-([1-9][0-9]*)-last\.html$ $1/forum.php?mod=redirect&goto=nextoldset&tid=$2 last;rewrite ^([^\.]*)/forum-([1-9][0-9]*)-next\.html$ $1/forum.php?mod=redirect&goto=nextnewset&tid=$2 last;rewrite ^([^\.]*)/printable-([0-9]+)\.html$ $1/forum.php?mod=viewthread&action=printable&tid=$2 last;END

修改“复制链接”的链接。打开 forum/viewthread.htm 模板文件

[{lang share_url_copy}]替换为:f$_G['uid']1-1.html' rel='nofollow' onclick='return copyThreadUrl(this, '$_G[setting][bbname]')' {if $fromuid}title='{lang share_url_copy_comment}'{/if}>[{lang share_url_copy}]END

修改楼层号上复制楼层地址的链接。打开 forum/viewthread_node.htm

替换为:END

“只看该作者”伪静态化。打开 forum/viewthread_node.htm

|......将整个if段替换为:|{lang thread_show_author}|{lang thread_show_all}END

“倒序/正序看帖”伪静态化。打开 forum/viewthread_node.htm

......将整个if段替换为:|{lang post_descview}|{lang post_ascview}END

“只看大图”和“打印”“上一主题/下一主题”链接伪静态化。

打开 forum/viewthread_node.htm 模板文件,查找 {lang view_bigpic} 替换为: 相册模式 。打开 forum/viewthread.htm 模板文件,查找: forum.php?mod=viewthread&action=printable&tid=$_G[tid]替换为:printable-$_G[tid].html 。查找: forum.php?mod=redirect&goto=nextoldset&tid=$_G[tid] 替换为: thread-$_G[tid]-prev.html 。超找: forum.php?mod=redirect&goto=nextnewset&tid=$_G[tid] 替换为: thread-$_G[tid]-next.html 。打开 source/module/forum/forum_redirect.php 文件,将:if($next) {dheader('Location: forum.php?mod=viewthread&tid=$next');} elseif($_GET['goto'] == 'nextnewset') {showmessage('redirect_nextnewset_nonexistence');} else {showmessage('redirect_nextoldset_nonexistence');}替换为:if($next) {dheader('Location: thread-$next-1-1.html');} elseif($_GET['goto'] == 'nextnewset') {header('HTTP/1.1 404 Not Found');showmessage('redirect_nextnewset_nonexistence');} else {header('HTTP/1.1 404 Not Found');showmessage('redirect_nextoldset_nonexistence');}END

帖子内容页翻页按钮伪静态化。

打开 source/module/forum/forum_viewthread.php 文件,查找:} else {$_GET['viewpid'] = intval($_GET['viewpid']);在它上面加入:$multipage_thread = multi_thread($_G['forum_thread']['replies'] + 1, $_G['ppp'], $page, 'thread-'.$_G['tid']);打开 source/function/function_core 文件,在 function simplepage($num, $perpage, $curpage, $mpurl) { 前面增加一段(定义multi_thread):function multi_thread($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {return $num > $perpage ? helper_page_thread::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : '';}进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_thread.php 。并依次修改 helper_page_thread.php 文件中的以下部分:将 helper_page 修改为 helper_page_thread (共两处,其中文件头注释中的那处无关紧要);将 $pagevar = 'page='; 修改为 $pagevar = '-'; ;在 $wml = defined('IN_MOBILE') && IN_MOBILE == 3; 前面新增:if($_GET['authorid']) {$url_filter = '-u'.$_GET['authorid'];} elseif($_GET['ordertype'] == 1 || $_GET['ordertype'] == 2) {$url_filter = '-o'.$_GET['ordertype'];} else {$url_filter = '-1';}将 $jsurl = $mpurl.(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value;').'; doane(event);'; 替换为:$jsurl = substr($mpurl, 0, -1).(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value').'+\''.$url_filter.'.html\'; doane(event);';在 public static function mpurl($mpurl, $pagevar, $page) { 下新增:if($_GET['authorid']) {$url_filter = '-u'.$_GET['authorid'];} elseif($_GET['ordertype'] == 1 || $_GET['ordertype'] == 2) {$url_filter = '-o'.$_GET['ordertype'];} else {$url_filter = '-1';}将 return $mpurl.$separator.$pagevar.$page; 替换为:return substr($mpurl, 0, -1).$separator.$pagevar.$page.$url_filter.'.html';打开 forum/viewthread.htm 模板文件,查找: $multipage

 替换为  $multipage$multipage_thread
 。查找: ,将其下方的 $multipage 的替换为: $multipage$multipage_thread 。END

“电梯直达”伪静态。

打开 forum/viewthread_node.htm 模板文件(有可能在 viewthread_node_body.htm 中),查找:{lang thread_redirect_postno}替换为:楼层跳转&authorid=$_GET[authorid]&ordertype=$_GET[ordertype]&postno='+this.value' onkeydown='if(event.keyCode==13) {window.location=$('fj_btn').href;return false;}' title='{lang thread_redirect_postno_tips}' />打开 source/module/forum/forum_redirect.php 文件,查找:header('HTTP/1.1 301 Moved Permanently');dheader('Location: forum.php?mod=viewthread&tid=$tid&page=$page$authoridurl$ordertypeurl'.(isset($_GET['modthreadkey']) && ($modthreadkey = modauthkey($tid)) ? '&modthreadkey=$modthreadkey': '').'#pid$pid');替换为:$authoridurl2 = $authorid ? 'u'.$authorid : '';$ordertypeurl2 = $ordertype ? 'o'.$ordertype : '';if(!$authorid && !$ordertype) {$noother = '1';}header('HTTP/1.1 301 Moved Permanently');if(!$modthreadkey) {dheader('Location: thread-$tid-$page-'.$authoridurl2.$ordertypeurl2.$noother.'.html#pid$pid');} else {dheader('Location: forum.php?mod=viewthread&tid=$tid&page=$page$authoridurl$ordertypeurl'.(isset($_GET['modthreadkey']) && ($modthreadkey = modauthkey($tid)) ? '&modthreadkey=$modthreadkey': '').'#pid$pid');}查找:if($ptid) {header('HTTP/1.1 301 Moved Permanently');dheader('Location: forum.php?mod=viewthread&tid=$ptid');替换为:$authoridurl3 = $authorid ? 'u'.$authorid : '';$ordertypeurl3 = $ordertype ? 'o'.$ordertype : '';if(!$authorid && !$ordertype) {$noother = '1';}if($ptid) {header('HTTP/1.1 301 Moved Permanently');dheader('Location: thread-$ptid-1-'.$authoridurl3.$ordertypeurl3.$noother.'.html');END

最后,在根目录 robots.txt 文件中添加

Disallow: /printable-*.htmlDisallow: /thread-*f*.htmlDisallow: /thread-*o*.htmlDisallow: /thread-*u*.htmlDisallow: /thread-*album.htmlDisallow: /thread-*prev.htmlDisallow: /thread-*next.htmlEND

注意事项

只测试过3.0和3.2的Discuz版本,希望对你们有用!!!

推荐信息