电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHPBB MOD for Google 完全解決方案

瀏覽:7日期:2024-02-05 09:34:29

作者:Trotter 郵箱:trotter@kekerde.net 出處:www.gbunix.com

轉載請保持文檔完整,注明出處。

前言

隨著互聯網上的內容以驚人速度的增長也越來越突出了搜索引擎的重要性,如果網站想更好地被搜索引擎收錄,網站設計除了面向用戶友好(User Friendly)外,搜索引擎友好(Search Engine Friendly)的設計也是非常重要的。進入搜索引擎的頁面內容越多,則被用戶用不同的關鍵詞找到的幾率越大。不得不承認,將動態網頁鏈接rewriting成靜態鏈接是最保險和穩定的面向搜索引擎優化方式。該方案就是針對phpBB論壇系統的URL重定向提出的。

解決方案

URL重定向從技術上將,目前可以通過兩種方式實現,一種是基于URL rewrite,另一種是基于PATH_INFO。例如http://www.gbunix.com/bbs/ftopic102.html就是基于rewrite實現的,而http://www.gbunix.com/article/article.php/515是基于PATH_INFO實現的。

針對PHPBB論壇的改造,我們分別就這兩種技術分別介紹。

一.使用rewrite技術實現:

修改phpBB代碼:

打開/includes/page_header.php文件,

搜索代碼:

// // Generate logged in/logged out status //

之前加:

ob_start(); function replace_for_mod_rewrite(&$s) { $urlin = array( ''(?<!/)viewforum.php?f=([0-9]*)&amp;topicdays=([0-9]*)&amp;start=([0-9]*)'', ''(?<!/)viewforum.php?f=([0-9]*)&amp;mark=topics'', ''(?<!/)viewforum.php?f=([0-9]*)'', ''(?<!/)viewtopic.php?t=([0-9]*)&amp;view=previous'', ''(?<!/)viewtopic.php?t=([0-9]*)&amp;view=next'', ''(?<!/)viewtopic.php?t=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;start=([0-9]*)'', ''(?<!/)viewtopic.php?t=([0-9]*)&amp;start=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;highlight=([a-zA-Z0-9]*)'', ''(?<!/)viewtopic.php?t=([0-9]*)start=([0-9]*)'', ''(?<!/)viewtopic.php?t=([0-9]*)'', ''(?<!/)viewtopic.php&amp;p=([0-9]*)'', ''(?<!/)viewtopic.php?p=([0-9]*)'', ); $urlout = array( 'viewforum1-2-3.html', 'forum1.html', 'forum1.html', 'ptopic1.html', 'ntopic1.html', 'ftopic1-2-3-4.html', 'ftopic1.html', 'ftopic1-2.html', 'ftopic1.html', 'sutra1.html', 'sutra1.html', ); $s = preg_replace($urlin, $urlout, $s); return $s; }

打開/includes/page_tail.php文件,

搜索代碼:

$db->sql_close();

之后加:

$contents = ob_get_contents(); ob_end_clean(); echo replace_for_mod_rewrite($contents); global $dbg_starttime;

如果你的phpBB是2.06版本,打開includes/functions.php文件,

搜索代碼:

if (!empty($db)) { $db->sql_close(); }

之后加:

if (stristr($url, 'http://')) { header('Location: ' . $url); exit; }

最后在bbs目錄下建立.htaccess 文件,文件內容為:

RewriteEngine On RewriteRule ^forums.* index.php RewriteRule ^forum([0-9]*).* viewforum.php?f=$1&mark=topic RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3 RewriteRule ^forum([0-9]*).* viewforum.php?f=$1 RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 RewriteRule ^ftopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2 RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1 RewriteRule ^ftopic([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1

如果你的服務器不支持.htaccess,請打開httpd.conf文件,編輯你的虛擬主機部分,如下:

<VirtualHost 1.2.3.4> ServerAdmin webmaster@domain.com DocumentRoot /home1/ftp/trotter/www ServerName www.gbunix.com RewriteEngine On RewriteRule ^/bbs/forums.* /bbs/index.php RewriteRule ^/bbs/forum([0-9]*).* /bbs/viewforum.php?f=$1&mark=topic RewriteRule ^/bbs/viewforum([0-9]*)-([0-9]*)-([0-9]*).* /bbs/viewforum.php?f=$1&topicdays=$2&start=$3 RewriteRule ^/bbs/forum([0-9]*).* /bbs/viewforum.php?f=$1 RewriteRule ^/bbs/ptopic([0-9]*).* /bbs/viewtopic.php?t=$1&view=previous RewriteRule ^/bbs/ntopic([0-9]*).* /bbs/viewtopic.php?t=$1&view=next RewriteRule ^/bbs/ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* /bbs/viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 RewriteRule ^/bbs/ftopic([0-9]*)-([0-9]*).* /bbs/viewtopic.php?t=$1&start=$2 RewriteRule ^/bbs/ftopic([0-9]*).* /bbs/viewtopic.php?t=$1 RewriteRule ^/bbs/ftopic([0-9]*).html /bbs/viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 RewriteRule ^/bbs/sutra([0-9]*).* /bbs/viewtopic.php?p=$1 ErrorLog logs/gbunix.com-error_log CustomLog logs/gbunix.com-access_log combined </VirtualHost>

如果你用的不是虛擬主機,將RewriteRule部分代碼放到httpd.conf文件最后就可以。

注意:非常重要的一點,為了系統的安全,請在bbs發布目錄下建立robots.txt文件,文件內容如下:

Disallow: /your-forum-folder/sutra*.html$ Disallow: /your-forum-folder/ptopic*.html$ Disallow: /your-forum-folder/ntopic*.html$ Disallow: /your-forum-folder/ftopic*asc*.html$

給apache安裝mod_rewrite模塊

如果你的服務器apache還沒有安裝,那很簡單,在編譯apache時將mod_rewrite模塊編譯進去就可以,相關文檔可以在www.gbunix.com中找到。如果你的apache已經安裝好了,現在只想編譯出mod_rewrite.so模塊,在apache中進行加載,下面我們就介紹這個方法。

以Solaris操作系統進行舉例:

# PATH=/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:$PATH # export PATH # which gcc # which make

# find ./ -name mod_rewrite.c //在apache的安裝目錄中尋找mod_rewrite.c文件 # cd PATH/to/mod_rewrite.c //進入包含mod_rewrite.c文件的目錄 # apxs -c mod_foo.c //apxs請指定絕對路徑,在你當前正在使用apache的bin目錄里 # apxs -i -a -n mod_rewrite mod_rewrite.la

如果沒有什么錯誤的話,應該在你的apache的modules目錄中編譯出一個mod_rewrite.so文件。

編輯httpd.conf文件,確認httpd.conf中已經包含mod_rewrite.so的加載語句,如下:

LoadModule rewrite_module modules/mod_rewrite.so

這時,你的apache應該已經支持rewrite了。

二.基于PATH_INFO技術實現:

修改phpBB代碼:

打開overall_header.tpl文件,在首行加如下代碼:

<base >

打開config.php文件,在?>前加入如下代碼:

if ($REQUEST_METHOD == 'GET') { if (strlen(getenv('PATH_INFO')) > 1) { $GET_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); for ($i=0, $n=sizeof($vars); $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1]; } $i++; } if (sizeof($GET_array) > 0) { while (list($key, $value) = each($GET_array)) { $HTTP_GET_VARS[$key] = $value; } } }

}

if ($REQUEST_METHOD == 'POST') { if (strlen(getenv('PATH_INFO')) > 1) { $POST_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); for ($i=0, $n=sizeof($vars); $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $POST_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $HTTP_POST_VARS[$vars[$i]] = $vars[$i+1]; } $i++; } if (sizeof($GET_array) > 0) { while (list($key, $value) = each($POST_array)) { $HTTP_POST_VARS[$key] = $value; } } }

}

打開functions.php文件,在?>前加入如下代碼:

function replace_for_mod_rewrite($s) {

$s = str_replace('?', '/', $s); $s = str_replace('&amp;', '/', $s); $s = str_replace('&', '/', $s); $s = str_replace('=', '/', $s); return $s;

}

打開sessions.php文件,用下面代碼替換原來定義的append_sid()函數:

function append_sid($url, $non_html_amp = false) { global $SID;

if ( !empty($SID) && !preg_match('#sid=#', $url) && !preg_match('#sid/#', $url) && !stristr( $_SERVER['HTTP_USER_AGENT'] ,'bot') && !stristr($_SERVER['HTTP_USER_AGENT'] ,'inktomi')) { $url .= ( ( strpos($url, '?') != false ) ? ( ( $non_html_amp ) ? '&' : '&amp;' ) : '?' ) . $SID ; } $url=replace_for_mod_rewrite($url); return $url; }

這時,你的論壇URL將會映射成(http://www.domain/bbs/viewtopic.php/t/4)這種方式。

參考文獻:

http://www.phpbb.com/phpBB/viewtopic.php?t=199008

http://www.phpbb.com/phpBB/viewtopic.php?t=137334

標簽: PHP
主站蜘蛛池模板: 神马影院-实时更新秒播| 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 北京公寓出租网-北京酒店式公寓出租平台 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 煤机配件厂家_刮板机配件_链轮轴组_河南双志机械设备有限公司 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 517瓜水果特产网|一个专注特产好物的网站 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 好笔杆子网 - 公文写作学习交流分享平台 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 天坛家具官网| SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 国际金融网_每日财经新资讯网 | 急救箱-应急箱-急救包厂家-北京红立方医疗设备有限公司 |