欢迎访客 ( 登陆 | 注册 )

论坛索引 | 最新主题 | 热门主题 | 搜索论坛 | 成员列表 | 在线帮助

 
Search engine-friendly URLs
« 上一篇主题 | 下一篇主题 » 跟踪主题 | 邮寄主题 | 打印主题
  xxbin 离线 荣誉奖品 (1)
  1. Search engine-friendly URLs
HP : 1030 / 1717
MP : 4151 / 30234
EXP : 68%
rotartsinimdA


成员等级: 69
发表总数: 12453
金币总数: 456
所属组别: 管理员
注册日期: 2003/01/1

Search engine-friendly URLs


话题不得不从很早前就开始,原来的论坛 ( http://oldbbs.netbuddy.org/cgi-bin/ultrabo...d/ultraboard.pl ) 用的是UltraBoard 2000,如果用Google查询,可能会查到旧论坛的首页,其它的页面Google上无法找到,为什么呢?
因为无论用什么论坛,基本上论坛都是由动态生成的页面组成的,而且论坛都有认证功能,一般来说,访问某个主题的连接可能是这样的:
http://oldbbs.netbuddy.org/cgi-bin/UltraBo...15&TID=636&SID=

这里面有很多Google等搜索引擎所不喜欢的符号,比如&,?,=等等,Google等搜索引擎最喜欢的就是静态的HTML页面了(比如 http://mize.netbuddy.org/ 那种),Google最讨厌的就是"ID=0DCB19209AE0"这样的字符串,因为类似这样字符串都是被一些动态页面(比如 postnuke/phpnuke、各种论坛等)用来表示一个session的,也许Google用来INDEX站点的蜘蛛(spider)——Googlebot每次访问某个动态页面的同一个页面时URL中的ID=都会不同。

比如
http://oldbbs.netbuddy.org/cgi-bin/UltraBo...15&TID=636&SID=
http://oldbbs.netbuddy.org/cgi-bin/UltraBo...636&SID=0292381

访问的是同一个页面

所以,Google等搜索引擎是最恨&,?,=这样的字符了,更讨厌ID=XXXX这样的字符串出现在某个URL里面,如果某个URL包含大量的这样的字符,那么Google可能会拒绝INDEX这个页面。

这也是很多论坛的主题很难从Google上搜索到的原因,这也是xxbin下定决心要把论坛的URLs改成搜索引擎友好的最直接原因和动力,要知道自己的贴子如果能够从Google上Search到那是多么开心的一件事情啊! biggrin.gif

首先我们来分析一下我们的论坛的URLs:
http://bbs.netbuddy.org/index.php?act=ST&f...=4&t=403&arch=0

这个联结是xxbin登陆论坛后访问网络论坛中"Google正在INDEX我们的论坛"这张贴子时的URL

这个URL对Google来说最严重的莫过于URL中包含的""这样的字符串了,这个东东Google看见了肯定就不再理我们了,需要去掉,测试了一下,可能是因为cookie的原因,登陆用户不用""这样的字符串也能正常访问论坛,同时论坛也能够识别这个用户,这样的话最重要的问题就解决了。 smile.gif

URL可能变成这样:
http://bbs.netbuddy.org/index.php?act=ST&f...=4&t=403&arch=0

接下来就是&,?,=等等Google不喜欢的字符串了,如果我们能够把上面的URL转换成
http://bbs.netbuddy.org/index/act/ST/f/4/t/403/arch/0

那Google就会喜欢我们了! biggrin.gif

怎么转
首先,在根目录下建立一个index文件,内容如下:
CODE

<?php

require "conf_global.php";
$base_url = $INFO['board_url']."/index.php";  

$redirect = "";

if ( $_SERVER['PATH_INFO'] != "" )
{
       $c = 0;
       $redirect = "?";
       foreach( explode( "/", $_SERVER['PATH_INFO'] ) as $bit)
       {
               if ($bit != "")
               {
                       if ($c == 0)
                       {
                               $c++;
                               $redirect .= $bit.'=';
                       }
                       else
                       {
                               $c = 0;
                               $redirect .= $bit.'&';
                       }
               }
       }
}

header("Location: $base_url".$redirect);

exit();

?>



稍微懂一点php或者c的语法的人都能看出来,这个脚本是把类似
http://bbs.netbuddy.org/index/act/ST/f/4/t/403/arch/0
这样的URL重定向到
http://bbs.netbuddy.org/index.php?act=ST&f...=4&t=403&arch=0

我们的HTTP Server是Apache 2.0.43
在Apache 1.x版本,对于
http://bbs.netbuddy.org/index/act/ST/f/4/t/403/arch/0
的URL,首先apache会查找是否存在/index这样一个目录,若这个目录不存在,那么查找是否存在/index这样一个文件,如果存在这个文件,就把后面的字符串作为参数传递给/index这个文件,而Apache 2.0.43就改了一下,如果没有/index这个目录,那么就报404错误。 sad.gif 为了解决这个问题xxbin可在Google上查了很久,最后发现在Apache 2.0.43的配置文件中加入AcceptPathInfo On就可以解决这个问题。

最后,为了让apache知道这个没有任何扩展名的index文件是个php脚本,需要在配置文件或者.htaccess文件中加入下面的配置:

<Files index>
ForceType application/x-httpd-php
</Files>

重起apache之后,发现用http://bbs.netbuddy.org/index/act/ST/f/4/t/403/arch/0的连接可以正常访问论坛了,接下来的工作就是把论坛首页,论坛索引,贴子列表等等页面的连接从原来Google不喜欢的格式改成Search engine-friendly URLs,OK,大功告成!

(注:因为index脚本用的是Redirect,因此各位在地址栏看到论坛的连接还是那种Google讨厌的格式,但是论坛的真实联结(移动鼠标到某个联结,然后从状态栏看到的连接)基本上已经改成Search engine-friendly URLs了)


user posted image
xxbin@netbuddy.org
发表于2003/02/12, 12:35
    Top
  屁屁 离线
2. Re: Fall in Love with Google...
HP : 91 / 918
MP : 702 / 16077
EXP : 72%
名动江湖


成员等级: 37
发表总数: 2108
金币总数: 576
所属组别: 核心成员
注册日期: 2003/01/13

up


user posted image
世界上有三种人,会数数的和不会数数的
发表于2003/02/12, 14:15
     Top
  bug 离线
3. Re: Search engine-friendly URLs
HP : 243 / 1219
MP : 1503 / 21389
EXP : 79%
测试中......


成员等级: 49
发表总数: 4509
金币总数: 301
所属组别: 核心成员
注册日期: 2003/01/10




user posted image
发表于2003/02/12, 15:48
      Top
  ALUX 离线
4. Re: Fall in Love with Google...
HP : 0 / 375
MP : 98 / 6445
EXP : 3%
名动江湖


成员等级: 16
发表总数: 294
金币总数: 493
所属组别: 中级成员
注册日期: 2003/02/28

有对网络搜索机器人实现的C代码么?
谁能提供一个呀?


灌水也要灌有学术价值的水
发表于2003/02/28, 10:47
     Top
  xxbin 离线 荣誉奖品 (1)
5. RE: Fall in Love with Google...
HP : 1030 / 1717
MP : 4151 / 30234
EXP : 68%
rotartsinimdA


成员等级: 69
发表总数: 12453
金币总数: 456
所属组别: 管理员
注册日期: 2003/01/1

QUOTE
有对网络搜索机器人实现的C代码么?
谁能提供一个呀?


自己写吧。
可以参考lynx的代码。

smile.gif



user posted image
xxbin@netbuddy.org
发表于2003/02/28, 22:03
    Top
  垃圾猫 离线
6. Re:Fall in Love with Google...
HP : 0 / 182
MP : 29 / 3125
EXP : 29%
武林侠客


成员等级: 8
发表总数: 87
金币总数: 174
所属组别: 普通成员
注册日期: 2003/03/1

GOOGLE的功能太强了。



盗也道,非常道.
名也明,十分明.
偶要跟大家学习。
发表于2003/03/2, 12:25
     Top
  qmsrobin 离线
7. Re:Search engine-friendly URLs
HP : 0 / 343
MP : 83 / 5324
EXP : 75%
名动江湖


成员等级: 14
发表总数: 249
金币总数: 227
所属组别: 中级成员
注册日期: 2003/09/24

写的好。。。。顶


去留无意静观那后庭花开花落;
宠辱不惊笑看那天空云卷云舒。
-------------------------------

发表于2003/09/27, 10:51
      Top
  porsche 离线
8. Re:Search engine-friendly URLs
HP : 0 / 37
MP : 4 / 577
EXP : 50%
初涉江湖


成员等级: 2
发表总数: 14
金币总数: 28
所属组别: 普通成员
注册日期: 2003/10/10

hao !


========================
http://www.infchina.com

共享信息是一种美德!建立网上图书馆
========================
发表于2004/02/15, 13:46
     Top
  ysgl 离线
9. Re:Search engine-friendly URLs
HP : 0 / 609
MP : 264 / 9017
EXP : 37%
名动江湖


成员等级: 25
发表总数: 793
金币总数: 615
所属组别: 高级成员
注册日期: 2003/12/18

xxbin太强了,佩服佩服啊


正在学习FreeBSD。。。
发表于2004/02/16, 10:14
     Top
  flymao 离线
10. Re:Search engine-friendly URLs
HP : 89 / 893
MP : 656 / 12331
EXP : 74%
名动江湖


成员等级: 36
发表总数: 1968
金币总数: 133
所属组别: 高级成员
注册日期: 2004/04/21

找到了 tongue.gif
发表于2004/08/3, 12:46
        Top
  大鬼 离线
11. Re:Search engine-friendly URLs
HP : 0 / 538
MP : 201 / 8235
EXP : 52%
名动江湖


成员等级: 22
发表总数: 605
金币总数: 351
所属组别: 高级成员
注册日期: 2003/10/16

非常好
发表于2004/08/3, 12:54
     Top
  flymao 离线
12. Re:Search engine-friendly URLs
HP : 89 / 893
MP : 656 / 12331
EXP : 74%
名动江湖


成员等级: 36
发表总数: 1968
金币总数: 133
所属组别: 高级成员
注册日期: 2004/04/21

xxbin偶咱个过出403的错误呢?

先谢谢
偶用的Apache/1.3.28 Server
发表于2004/08/3, 12:56
        Top
  flymao 离线
13. Re:Search engine-friendly URLs
HP : 89 / 893
MP : 656 / 12331
EXP : 74%
名动江湖


成员等级: 36
发表总数: 1968
金币总数: 133
所属组别: 高级成员
注册日期: 2004/04/21

偶用的win2K在httpd.cfg加了个AcceptPathInfo On就起不了Apache了
发表于2004/08/3, 12:58
        Top
  xxbin 离线 荣誉奖品 (1)
14. RE: Search engine-friendly URLs
HP : 1030 / 1717
MP : 4151 / 30234
EXP : 68%
rotartsinimdA


成员等级: 69
发表总数: 12453
金币总数: 456
所属组别: 管理员
注册日期: 2003/01/1

QUOTE
偶用的win2K在httpd.cfg加了个AcceptPathInfo On就起不了Apache了

AcceptPathInfo On
好像WIN2K下的APACHE 2.X不用加吧。

很少用WIN2K来做服务器,不清楚。



user posted image
xxbin@netbuddy.org
发表于2004/08/3, 13:08
    Top
  flymao 离线
15. Re:Search engine-friendly URLs
HP : 89 / 893
MP : 656 / 12331
EXP : 74%
名动江湖


成员等级: 36
发表总数: 1968
金币总数: 133
所属组别: 高级成员
注册日期: 2004/04/21

不加就是403错误看不倒
发表于2004/08/3, 13:09
        Top
  flymao 离线
16. Re:Search engine-friendly URLs
HP : 89 / 893
MP : 656 / 12331
EXP : 74%
名动江湖


成员等级: 36
发表总数: 1968
金币总数: 133
所属组别: 高级成员
注册日期: 2004/04/21

只是在自己机子上调试下,回学校在linux上调调
还是玩游戏去 smile.gif
发表于2004/08/3, 13:10
        Top
  xxbin 离线 荣誉奖品 (1)
17. Re:Search engine-friendly URLs
HP : 1030 / 1717
MP : 4151 / 30234
EXP : 68%
rotartsinimdA


成员等级: 69
发表总数: 12453
金币总数: 456
所属组别: 管理员
注册日期: 2003/01/1

要么用1.3.X版本的APACHE试试。
或者OS换成LINUX



user posted image
xxbin@netbuddy.org
发表于2004/08/3, 13:10