Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz! 7.2论坛@HostMonster网站优化指南(版块绑定域名)

[复制链接]
chinakr 发表于 2010-1-30 05:10:12 | 显示全部楼层 |阅读模式
作者:清北DIY俱乐部/chinakr
日期:2010-01-30

数日前曾撰写《使用Discuz!的版块“绑定域名”功能》一文,介绍了Discuz! 7.2论坛程序新增的版块绑定域名功能。不过后来发现严重Bug(请参阅《Discuz! 7.2的URL静态化功能存在的Bug》,于是向官方反馈了问题,恢复论坛原貌,等待修复补丁。

虽然只启用了短短的2、3天,但是google.cn很敏锐地发现了清北服务网站域名的变化,并马上进行了索引。不使用版块绑定域名的功能实在觉得可惜。于是我决定从Bug产生的原因入手,绕过这个Bug,先满足使用的需要。

在《Discuz! 7.2的URL静态化功能存在的Bug》中介绍过,如果你的论坛程序不是在网站的根目录下,而是在子目录下,那么启用版块绑定域名功能后,论坛的翻页就会出问题。所以要绕过这个Bug,只能让论坛程序出现在网站的根目录下。以清北服务网站的清北技术论坛为例,原来的设置是:
清北技术论坛
    http://quickbest.com.cn/discuz
    清北ThinkPad论坛
        http://quickbest.com.cn/discuz/forum-20-1.html
    清北Apple论坛
        http://quickbest.com.cn/discuz/forum-37-1.html
    清北Ubuntu中文论坛
        http://quickbest.com.cn/discuz/forum-28-1.html
现在需要修改为:
清北技术论坛
    http://bbs.quickbest.com.cn
这样启用清北ThinkPad论坛和清北Apple论坛的绑定域名功能后就不会出错了,也就是:
清北ThinkPad论坛
    http://thinkpad.quickbest.com.cn
清北Apple论坛
    http://apple.quickbest.com.cn
清北Ubuntu中文论坛
    http://ubuntu.quickbest.com.cn

如果论坛程序是放在HostMonster上的,那么具体应该怎么设置呢?接下来我们来看一下完整的过程。

首先登录HostMonster的cPanel(建议把界面语言设置为英文,这样表述更符合一般习惯)。

HostMonster设置子域名:

cPanel -> Domains -> Subdomains ->
    Subdomain: bbs.quickbest.com.cn
    Document root: public_html/discuz

实际问题出在/discuz/.htaccess文件的RewriteBase语句上,如果要使用
http://quickbest.com.cn/discuz
域名,那么这个语句应该写为:
RewriteBase /discuz
而如果要使用
http://bbs.quickbest.com.cn
域名,那么这个语句应该写为:
RewriteBase /
只有解决了这个问题,才能让两个域名同时访问Discuz!论坛程序时URL静态化正确工作。最简单的办法是使用域名跳转,也就是说:如果你要访问 discuz这个目录,那么你的域名只能是bbs.quickbest.com.cn,如果不是,则自动跳转到 bbs.quickbest.com.cn。具体来说,需要把/discuz/.htaccess文件的内容由:

    # 将 RewriteEngine 模式打开
    RewriteEngine On
    # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
    RewriteBase /discuz
    # Rewrite 系统规则请勿修改
    RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
    RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
    RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
    RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
    RewriteRule ^tag-(.+)\.html$ tag.php?name=$1


修改为:

    # 将 RewriteEngine 模式打开
    RewriteEngine On
    # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
    RewriteBase /
    # Rewrite 系统规则请勿修改
    #RewriteCond %{HTTP_HOST} !^bbs.quickbest.com.cn$ [NC]
    #RewriteRule ^(.*)$ http://bbs.quickbest.com.cn/$1 [R=301,NC]
    RewriteCond %{HTTP_HOST} ^quickbest.com.cn$
    RewriteRule ^(.*)$ http://bbs.quickbest.com.cn/$1 [R=301,NC]
    RewriteCond %{HTTP_HOST} ^www.quickbest.com.cn$
    RewriteRule ^(.*)$ http://bbs.quickbest.com.cn/$1 [R=301,NC]
    RewriteRule ^discuz$ http://bbs.quickbest.com.cn [R=301,NC]
    RewriteRule ^discuz/(.*) http://bbs.quickbest.com.cn/$1 [R=301,NC]
    RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
    RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
    RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
    RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
    RewriteRule ^tag-(.+)\.html$ tag.php?name=$1



让我们来检验一下这个办法是不是有效。在g.cn用关键字“thinkpad 客服”进行搜索,可以找到:
联想ThinkPad全球客户服务中心联系电话
    http://quickbest.com.cn/discuz/thread-4860-1-4.html
点击进入后打开的网址是:
http://bbs.quickbest.com.cn/thread-4860-1-4.html
自动跳转成功!

解决了URL静态化的问题,接下来我们按照《使用Discuz!的版块“绑定域名”功能》一文介绍的方法来设置:
http://thinkpad.quickbest.com.cn
http://apple.quickbest.com.cn
http://ubuntu.quickbest.com.cn
所有的步骤都没有任何改变!

最后,如果你想在上面的各个子域名下保持同样的登录状态,那么还需要修改/discuz/config.inc.php文件,把:
$cookiedomain = ''
修改为:
$cookiedomain = '.quickbest.com.cn'
注:这个功能在Chromium 5.0.309.0和Firefox 3.6.2pre下测试通过。如果测试不成功请先清除cookies。

更新:很郁闷!!!
Discuz! 7.2提供的版块域名绑定功能还是有Bug!按照上面的设置,如果你访问:
http://thinkpad.quickbest.com.cn
并不会得到正确的:
http://thinkpad.quickbest.com.cn/index.php
而是得到错误的:
http://thinkpad.quickbest.com.cn/discuz/index.php
这样的话,当然还会碰到《Discuz! 7.2的URL静态化功能存在的Bug》提到的URL静态化Bug。而且访问下一页的Bug依然存在...
至于为什么能够确认是版块绑定域名功能的Bug,可以参阅参考资料中的《版块绑定域名补丁0.3 for Discuz! 7.1 Release 20091030》一文的环境要求和安装步骤部分。
希望littlehz诸位大侠能够尽快修正这个Bug。
btw:参考资料中《如何设置htaccess,才能将搜索收录的影响降到最低点呢》里,littlehz大侠在9#楼提供的办法我实测了确实不行。因为这一句解决的是:
http://bbs.quickbest.com.cn/discuz -> http://bbs.quickbest.com.cn
而不是楼主希望的:
http://quickbest.com.cn/discuz -> http://bbs.quickbest.com.cn
所以解决方法无效。
littlehz大侠下次回答问题的时候要注意一下用户的后续反馈啊^_^辛苦了!
您提到的“详见帮助区的rewrite教程”我在Discuz!版块的帮助文档子版块也没有找到
哎,暂时还是不能使用Discuz! 7.2提供的版块域名绑定功能了,等补丁吧!

更新:成功了!!!
终于找到了解决问题的办法了!只要在HostMonster中按照bbs.quickbest.com.cn的设置方法,把 thinkpad.quickbest.om.cn设置为子域名,指向/discuz,这样版块绑定域名功能就工作正常了!也就是说,访问:
http://thinkpad.quickbest.com.cn
不在会跳转到:
http://thinkpad.quickbest.com.cn/discuz/index.php
了!同理设置apple.quickbest.com.cn和ubuntu.quickbest.com.cn为子域名,并且指向/disucz即可!
不要CNAME,要子域名,GOOD!

参考资料:
    如何设置htaccess,才能将搜索收录的影响降到最低点呢
        Google关键字:rewritebase 域名
        https://discuz.dismall.com/viewthread.php?tid=1453892
    版块绑定域名补丁0.3 for Discuz! 7.1 Release 20091030
        Google关键字:discuz! 7.2 版块 域名绑定 原理
        https://discuz.dismall.com/thread-1456298-1-1.html
    与SS有关的rewrite快速入门教程
        https://discuz.dismall.com/viewthread.php?tid=1361331
    Rewrite 3完整版设置教程 301转向规则+UCHOME+DISCUZ静态化设置
        https://discuz.dismall.com/viewthread.php?tid=1347273

本文地址:http://quickbest.com.cn/discuz/thread-70788-1-1.html

(欢迎转载;转载请注明作者和出处)
findb 发表于 2010-2-2 08:52:10 | 显示全部楼层
版块二级域名绑定功能真的是很有用,但bug太多,用起来很不爽。楼主的教程很好,但我们的论坛一般都在根目录下,所以可能没有楼主说的问题。

我认为最主要的问题是点击论坛首页无法回到主论坛。
回复

使用道具 举报

 楼主| chinakr 发表于 2010-2-9 00:54:03 | 显示全部楼层
我认为最主要的问题是点击论坛首页无法回到主论坛。

这个问题我到觉得不是Bug,但是是设计缺陷。应该提供一个返回主论坛的链接,同时避免用子论坛的域名访问其它版块内容的可能性。这句话可能表达得不够清楚,举例说明:
我把ubuntu.quickbest.com.cn和清北服务网站-清北技术论坛的LAMP学习小组版块绑定了,这个版块原则上只能用ubuntu.quickbest.com.cn这个域名访问了(之所以说是原则上,是因为Google这些搜索引擎还可以通过主论坛的域名bbs.quickbest.com.cn来抓取这个版块的文章)。但是因为论坛开启了快速跳转功能,你可以用ubuntu.quickbest.com.cn这个域名来访问论坛其它版块的内容。
上面提到的这些带来的直接后果就是搜索引擎优化效果大打折扣,以Google对清北服务网站-清北技术论坛的收录为例,Google“Discuz! 7.2论坛@HostMonster网站优化指南(版块绑定域名)”首先得到的是bbs.quickbest.com.cn的URL地址,然后才是ubuntu.quickbest.com.cn的URL地址,这并不是我们所期望的结果(起不到域名关键字优化的作用了)。
回复

使用道具 举报

wapwuw 发表于 2010-2-27 10:45:04 | 显示全部楼层
LZ写得很详细,虽然我用不到,但收藏了,以备用。http://www.wapwuw.cn
回复

使用道具 举报

discuzoor 发表于 2010-10-10 23:39:40 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-29 13:38 , Processed in 0.146213 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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