Discuz教程网

用Rewrite伪静态文件解决Discuz x2.5域名多入口问题的方法

[复制链接]
authicon dly 发表于 2013-1-12 20:24:41 | 显示全部楼层 |阅读模式
Discuz x2.5后台提供了应用域名的设置,但这需要将这些域名都指向你的空间,并且你还要在空间上将这些域名都绑上,这就造成了所有这些域名都可以访问你站内的同一页面。

比如http://bbs.discuz.net/thread-133304-1-1.html用http://www.discuz.net/thread-133304-1-1.html一样可以访问,这就是通常所说的多域名入口问题,这个是程序的问题,无法通过程序本身的设置解决,只能想其他办法。

由于Discuz各应用的URL很有规律,所以想到可以用Rewrite来解决多入口问题,下面以论坛为例来说明,门户和群组类似。
论坛的主要页面的URI都是以 /forum 及/thread 开始的,因此可以加一个Rewrite规则,判断如果请求的URI是以/forum 或/thread 开头,那么就应该是论坛的内容,如果域名却不是bbs.idctalk.com ,那么就执行301转向到这个域名上。

规则如下:
  1. RewriteCond %{HTTP_HOST} !(^bbs\.discuz\.net$) [NC]
  2. RewriteCond %{REQUEST_URI} (^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$)|(^/forum-(\w+)-([0-9]+)\.html$)
  3. RewriteRule ^(.*)$ http://bbs.discuz.net/$1 [L,R=301]
复制代码

如果是iis的话,以上内容直接添加进httpd.ini中即可。

这样做了之后,再访问http://www.discuz.net/thread-133304-1-1.html,就会自动转向http://bbs.discuz.net/thread-133304-1-1.html,这对seo是有好处的。



上一篇:mp4歌曲网 交换链接www.mp4gq.com
下一篇:IIS下的万能301跳转方法,URL伪静态重写加PHP301重定向
authicon ZXY280 发表于 2013-1-16 14:05:25 | 显示全部楼层
本帖最后由 ZXY280 于 2013-1-16 14:11 编辑

301到是很不错,但是有点小问题:
跳转后的网址会这样:http://bbs.ceczyz.com//thread-2900-1-1.html
多一个“/”,不知道有什么问题没,尤其是对seo的收录等……
且还多出来一个新问题就是:http://qun.ceczyz.com//thread-2900-1-1.html这个域名就不能再跳转到http://bbs.ceczyz.com//thread-2900-1-1.html
该怎么办呢?
谢谢,楼主
authicon  楼主| dly 发表于 2013-1-16 14:17:27 | 显示全部楼层
ZXY280 发表于 2013-1-16 14:05
301到是很不错,但是有点小问题:
跳转后的网址会这样:http://bbs.ceczyz.com//thread-2900-1-1.html
多 ...


http://bbs.discuz.net/$1

去掉/


想//的处理把前边的
(^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$)|(^/forum-(\w+)-([0-9]+)\.html$)

多家几个规则就是了,|分隔
(^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$)|(^/forum-(\w+)-([0-9]+)\.html$)|(^//thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-19 03:08

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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