返回列表 回复 发帖

给redirect.php做301跳转

类似redirect.php?tid=7&goto=lastpost这种形式URL的页面的子内容和thread-1-1-1.html一样的,但URL形式不一样,SE会当成重复内容。
这种URL形式会出现在主页、版块列表页的最后发表或最后回复位置,discuz7以前版本的上一主题、下一主题等也是此种形式的URL,现在虽然没有,但在代码中还能找到那些参数。

为什么不禁止这种URL形式的索引
1.主要是不能控制别人链接到这种形式,如果禁止索引这种形式的URL就浪费了链接,所以要做301跳转,把链接和权重转移到标准的静态形式。
2.链接形式出现在首页,不禁止或许可以加快录

给redirct.php做301跳转
有的情况下程序要查找才能得到要显示的tid,所以只能修改程序,用php代码实现301跳转
打开 redirect.php 文件,将 require_once DISCUZ_ROOT.'./viewthread.php'; 替换为
header("HTTP/1.1 301 Moved Permanently");
header( "Location: thread-{$tid}-1-1.html" );

文件中共有四处,都修改完就可以访问论坛,检查下效果了。

目录:SEO论坛dz(Discuz优化)手记
前两个改成
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: thread-{$tid}-{$page}-1.html");
这样修改有一个缺点就是:首页显示的版块最新帖子,点击后打开的不是最新回贴的页面,而是帖子的第一页。如果帖子有多页,用户还要再点击一下,不够友好
是的,功能损失了。

不过不改也行,用redirect.php的动态形式,里面会有link rel="canonical"标签指向静态形式,不过百度不支持吧
交流QQ群:13519368
是的,功能损失了。

不过不改也行,用redirect.php的动态形式,里面会有link rel="canonical"标签指向静态形式,不过百度不支持吧
SEO小工 发表于 2009-8-9 21:17
三楼已经给出解决方案了

header("HTTP/1.1 301 Moved Permanently");
header( "Location: thread-{$tid}-{$page}-1.html" );
这样跳转的时候就不会丢失了
打开 redirect.php 文件,将 require_once DISCUZ_ROOT.'./viewthread.php'; 替换为
header("HTTP/1.1 301 Moved Permanently");
header( "Location: thread-{$tid}-1-1.html" );

文件中共有四处,都修改完就可以访问论坛,检查下效果了。
在discuz 7.2 有所不同。首先只有3处,其次修改完毕后会出现404错误
Search
Energy
这里给出的是跳转到 伪静态 的方式。如果没有使用这个功能,这里的代码要改成这样:
header( "Location: viewthread.php?tid={$tid}" );
交流QQ群:13519368
这里给出的是跳转到 伪静态 的方式。如果没有使用这个功能,这里的代码要改成这样:
header( "Location: viewthread.php?tid={$tid}" );
SEO小工 发表于 2010-1-27 21:30
谢谢指教。再请问伪静化对抓取的提升大约有多大?我目前论坛百度和G.cn的抓取率分别是50%和80%
Search
Energy
伪静态不能直接提升抓取。
这里主要是规范化URL,如一个页面有各种URL形式,都统一到这个伪静态地址上,那么URL就统一了。
交流QQ群:13519368
返回列表