有些虚拟主机不支持通过修改htaccess文件支持Discuz!论坛的Rewrite功能,此种情况只能通过修改程序达到伪静态化的目的了。

此处只说内容页面(viewthread.php)静态化。

1.修改global.func.php

include目录下global.func.php中有rewrite_thread函数,是实现Rewrite的。
原始内容为:
function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = ”) {
 return ‘<a href=http://www.kankanblog.com/”thread-’.$tid.’-’.($page ? $page : 1).’-’.($prevpage && !IS_ROBOT ? $prevpage : 1).’.html”‘.stripslashes($extra).’>’;
}

修改为:
function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = ”) {
 return ‘<a href=http://www.kankanblog.com/”viewthread.php/thread-’.$tid.’-’.($page ? $page : 1).’-’.($prevpage && !IS_ROBOT ? $prevpage : 1).’.html”‘.stripslashes($extra).’>’;
}

即在thread前加了“viewthread.php/”。

2.修改viewthread.php文件。

在此文件开头加入以下代码:
$tid = $_GET['tid']; $page = $_GET['page']; $prevpage = $_GET['prevpage'];
if(!$page)$page = 1;if(!$prevpage)$prevpage = 1;
if($tid){
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.mysite.com/bbs/viewthread.php/thread-$tid-1-1.html” );
}

作用是使以前google收录的页面能顺利301永久重定向到新的路径下。

3.修改viewthread.php文件。
在上面代码紧靠着加上如下代码:
$get_inf = $_SERVER[REQUEST_URI];
$get_arr = split(‘/’,$get_inf);
if($get_arr[2]==’viewthread.php’){
 $get_arr = $get_arr[3];
 $get_arr = split(‘-’,$get_arr);
 $tid = $get_arr[1];  $page = $get_arr[2];  $prevpage = $get_arr[3];
}

作用是处理伪静态后的URL。

4.设置论坛后台
进入论坛后台,选中基本设置->搜索引擎优化->URL 静态化->主题内容页面(viewthread.php)静态化,然后提交。

刷新论坛,即可看到静态化后的URL已经变为http://www.mysite.com/bbs/viewthread.php/thread-3-1-1.html的形式,浏览页面也能正常工作。

但是有些图片,以及css可能无法正常工作,只需修改templates目录下对应的模版下header.htm文件,在head标签后加上如下标签:<base href=”http://www.mysite.com/bbs/” />。

43 Things: ,
BuzzNet: ,
del.icio.us: ,
Flickr: ,
IceRocket: ,
LiveJournal: ,
Technorati: ,

菊子曰 今天你菊子曰了么?

原创文章,转载请注明: 转载自老姜的博客

本文链接地址: Discuz论坛不支持.htaccess的伪静态化

无觅相关文章插件,快速提升流量

|2|left|yes