找回密码
 立即注册
查看: 2708|回复: 0

Discuz帖子的伪静态规则调整

[复制链接]

72

主题

105

回帖

249

积分

管理员

积分
249

社区居民社区明星

发表于 2022-6-5 12:48:31 | 显示全部楼层 |阅读模式
Discuz伪静态URL

Discuz!有一个对搜索引擎非常不友好的默认设置,

默认的帖子页面伪静态规则是:

thread-{tid}-{page}-{prevpage}.html

即规则为:

thread-{帖子ID}-{帖子翻页ID}-{当前帖子所在的列表页ID}.html

问题就出在“当前帖子所在的列表页ID”这里,因为在论坛板块中,当一个帖子是最新发表或最新回复的时候,“当前帖子所在的列表页”是第一页,url中的数字是 “1”。当这个帖子很久没人回复沉下去的时候,“当前帖子所在的列表页”就不知道是几了,可能出现在第二页,也可能在第十页。这样,每个帖子的url经常在变化。会产生很多的重复页面,而且url经常变化,被收录当前帖子积累的权重会因为不显示在论坛页面而减少甚至丢失。

同一个帖子URL,随着帖子所在页面的不同,会出现不同的URL:

例如:帖子的路径 /thread-21-1-1-1.html

当这个帖子在列表第一页的时候:路径是 /thread-21-1-1-1.html

当这个帖子在列表第二页的时候:路径是 /thread-21-1-2.html

虽然被收录的依然能打开,但在SEO中很忌讳这种权重分散,很多大型论坛度存在这种问题。

解决办法:

其实这个很解决,将默认规则修改一下就能解决:

默认的帖子页面伪静态规则是:

thread-{tid}-{page}-{prevpage}.html

即规则为:

thread-{帖子ID}-{帖子翻页ID}-{当前帖子所在的列表页ID}.html

修改后帖子页面伪静态规则:

thread-{tid}-{page}-{page}.html

即规则为:

thread-{帖子ID}-{帖子翻页ID}-{帖子翻页ID}.html

这样更改的好处就是不管怎么分页都保持固定的一个url显示在论坛主题列表中。

注:以前因列表分页产生的url依然可以打开,但没在页面显示,相当于没在论坛中推荐,这样分散的权重相对较少,目前这是最显著的解决办法。

之前考虑改成thread-{tid}-{page}.html,但是发现之前很多收录的帖子都404无法打开了。还是采用了以上的方案。

主机上的文件内容为:


  1. # 将 RewriteEngine 模式打开
  2. RewriteEngine On

  3. # 如 www.discuz.net/bbs/,对应的就是 RewriteBase /bbs/,如果程序放在根目录中,使用 RewriteBase /
  4. RewriteBase /

  5. # Rewrite 系统规则请勿修改
  6. RewriteCond %{QUERY_STRING} ^(.*)$
  7. RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
  8. RewriteCond %{QUERY_STRING} ^(.*)$
  9. RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3&page=$3&%1
  10. RewriteCond %{QUERY_STRING} ^(.*)$
  11. RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1
复制代码




安徽大学论坛——七彩梦论坛www.ahubbs.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|安徽大学论坛 ( 皖ICP备11003929号-3 )

GMT+8, 2024-4-25 14:22 , Processed in 0.070732 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

Copyright © 2006-2024 安徽大学论坛 All Rights Reserved

快速回复 返回顶部 返回列表