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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

修改论坛程序实现多域名访问SS/XS

[复制链接]
antdk 发表于 2007-9-7 16:50:47 | 显示全部楼层 |阅读模式
修改论坛程序实现多域名访问SS/XS
我们知道由于SS/XS使用绝对路径(地址是完整的http://),所以只支持一个域名访问方式,如果使用多域名访问,哪怕IIS和Apache设置是正确的,也会导致只有一个域名能够完美访问,就是填写在config.php文件里的$siteurl的地址值,我当初安装SS/XS的时候将程序安装在根目录,论坛安装在其下的bbs子目录里,当时经SUP提醒,将$siteurl留空,$bbsurl填'/bbs',这样访问SS/XS是没有什么问题了,可以绑定多域名,访问也正常,但是论坛后台提示找不到SS/XS,没法设置,论坛的空间导读、个人空间点击后全回到论坛首页。为此曾写过一篇文章谈及修改论坛文件的,参见:
https://discuz.dismall.com/viewthread.php?tid=581908
目前论坛已经升级到6.0.0正式版,我也升级论坛了,与原来相比,需要修改的文件比较多,修改方法也不尽相同,所以有志修改程序达到多域名访问的不妨阅读一下此篇文章。

特别提醒:安装结构为   SSXS安装在根目录,论坛安装在bbs子目录(这个目录名称可以不同,不影响,只要相应修改config.php里的$bbsurl就可以了),不是这种安装结构的修改方法不支持,勿谓言之不予,切切。

首先填写config.php文件时,$siteurl='',$bbsurl='/bbs'(如果不是bbs请填写正确的目录名称),访问方式为http://www.ss/xs.com(ss/xs页面)和http://www.ss/xs.com/bbs(论坛页面) [这个只是一个举例的地址,不是实际地址,请注意]

SS/XS就配置好了,你可以试试绑定多个域名访问,没有问题,页面是完整的。

下面就是论坛文件的修改,注意论坛是6.0.0正式版的,其他版本参见上面给出的链接。

1、首先要让论坛后台承认你安装了SS/XS,打开论坛admin目录下的supesute.inc.php文件,找到:
  1. if(!$settings['supe_siteurl']) {
复制代码
修改为:
  1. if(!$settings['supe_status']) {
复制代码
到论坛后台看看,扩展设置--supe参数设置出来了。

2、论坛首页ss/xs地址点击后回到首页,点击个人空间也不对,这个需要修改template\default目录(我使用默认风格,如果其他风格要修改同一文件)下的discuz.htm文件。
打开文件,搜索$supe[siteurl],注意,这里的修改分两种情况,如果只是单一出现的,将它修改为 / ,如果是地址前面的,删除就可以了,例如:
<!--{if $supe['status']}--><a href="$supe[siteurl]" target="_blank">$supe['sitename']</a> - <!--{/if}-->
修改为:
<!--{if $supe['status']}--><a href="/" target="_blank">$supe['sitename']</a> - <!--{/if}-->
而类似:
<a href="$supe[siteurl]/?uid/$discuz_uid" target="_blank">{lang space}</a>
这样的修改为:
<a href="/?uid/$discuz_uid" target="_blank">{lang space}</a>
就可以了,文件需要修改的地方六处。
3、修改同目录下的jsmenu.htm文件,搜索$supe[siteurl],删除就可以了,有两处。
4、修改论坛根目录下的blog.php文件找到:
  1. if($supe['status'] && $member['xspacestatus']) {
  2.         dheader("location: $supe[siteurl]?uid/$uid");
复制代码
修改为:
  1. if($supe['status'] && $member['xspacestatus']) {
  2.         dheader("location: /?uid/$uid");
复制代码
5、修改根目录下的space.php文件,找到:
  1. if($spacestatus && $supe['status'] && $member['xspacestatus']) {
  2.         dheader("location: $supe[siteurl]?uid/$uid");
复制代码
改为:
  1. if($spacestatus && $supe['status'] && $member['xspacestatus']) {
  2.         dheader("location: /?uid/$uid");
复制代码
6、修改根目录下的viewthread.php文件,找到:
$navigation = '&raquo; <a href="'.($iscircle && empty($frombbs) ? $supe['siteurl'].'?action_mygroup_gid_'.$thread['sgid'].'_op_list_type_bbs_fid_'.$fid : 'forumdisplay.php?fid='.$fid.($extra ? '&'.preg_replace("/^(&)*/", '', $extra) : '')).'">'.$forum['name'].'</a> &raquo; '.$thread['subject'];

$navtitle = $thread['subject'].' - '.strip_tags($forum['name']);
if($forum['type'] == 'sub') {
        $query = $db->query("SELECT fid, name FROM {$tablepre}forums WHERE fid='$forum[fup]'");
        $fup = $db->fetch_array($query);
        $navigation = '&raquo; <a href="'.($iscircle ? $supe['siteurl'].'?action_mygroup_gid_'.$thread['sgid'].'_op_list_type_bbs_fid_'.$fup[fid] : 'forumdisplay.php?fid='.$fup[fid]).'">'.$fup[name].'</a> '.$navigation;
        $navtitle = $navtitle.' - '.strip_tags($fup['name']);
}
修改为:
$navigation = '&raquo; <a href="'.($iscircle && empty($frombbs) ? '?action_mygroup_gid_'.$thread['sgid'].'_op_list_type_bbs_fid_'.$fid : 'forumdisplay.php?fid='.$fid.($extra ? '&'.preg_replace("/^(&)*/", '', $extra) : '')).'">'.$forum['name'].'</a> &raquo; '.$thread['subject'];

$navtitle = $thread['subject'].' - '.strip_tags($forum['name']);
if($forum['type'] == 'sub') {
        $query = $db->query("SELECT fid, name FROM {$tablepre}forums WHERE fid='$forum[fup]'");
        $fup = $db->fetch_array($query);
        $navigation = '&raquo; <a href="'.($iscircle ? '?action_mygroup_gid_'.$thread['sgid'].'_op_list_type_bbs_fid_'.$fup[fid] : 'forumdisplay.php?fid='.$fup[fid]).'">'.$fup[name].'</a> '.$navigation;
        $navtitle = $navtitle.' - '.strip_tags($fup['name']);
}
现在论坛首页和帖子内容页面除了热点导读里的链接不对之外,其他的都基本没有问题了,下面就解决这个。

7、修改论坛include目录下的cache.func.php文件,找到:
while($item = $supe['db']->fetch_array($query)) {
                                        $typename = $language['supe_'.$item['type']];
                                        $items[] = '<em>[<a href="'.$supe['siteurl'].'?action/'.$item['type'].'" target="_blank">'.$typename.'</a>]</em> <cite><a href="'.$supe['siteurl'].'?uid/'.$item['uid'].'" target="_blank">'.addcslashes(addslashes($item['username']), '\\\'').'</a></cite>: <a href="'.$supe['siteurl'].'?action/viewspace/itemid/'.$item['itemid'].'.html" target="_blank">'.addcslashes(addslashes(cutstr($item['subject'], 35)), '\\\'').'</a>';
                                }
修改为:
        while($item = $supe['db']->fetch_array($query)) {
                                        $typename = $language['supe_'.$item['type']];
                                        $items[] = '<em>[<a href="/?action/'.$item['type'].'" target="_blank">'.$typename.'</a>]</em> <cite><a href="/?uid/'.$item['uid'].'" target="_blank">'.addcslashes(addslashes($item['username']), '\\\'').'</a></cite>: <a href="/action/viewspace/itemid/'.$item['itemid'].'.html" target="_blank">'.addcslashes(addslashes(cutstr($item['subject'], 35)), '\\\'').'</a>';
                                }
现在看看热点导读里的链接已经正确了。
到这里修改就告一个段落了,现在可以看看多个地址的访问结果了,应该是没有问题的,使用双线空间的不妨试试。

    最后的提醒,不要贪心不足,将论坛也绑定一个二级域名,这样的做法我没有测试过,估计比较成问题,能达到多域名正常访问SS/XS已经可以了吧。
    还有一点要注意的,就是使用一个域名登陆后,在其他的域名上反映是没有登陆的,但是同域名的论坛是同步的。
    发表带图片的日志最好不要使用插入文章的做法,否则在一个域名上能看到的图片在其他域名上是不能看的,不插入就可以,有人说使用Firefox浏览器就可以,但是本人没有测试过,留给有心人测试一下吧。最后看看结果,注意地址栏里的地址:

   域名地址1结果.gif (36.83 KB)

2007-9-7 16:34

   域名地址2的结果.gif (31.08 KB)

2007-9-7 16:34

演示站点:http://sq.hcclib.net

[ 本帖最后由 antdk 于 2007-9-8 14:54 编辑 ]
it1988.com 发表于 2007-9-9 03:13:55 | 显示全部楼层
支持一个先....
回复

使用道具 举报

A-- 发表于 2007-9-11 00:58:05 | 显示全部楼层
这么麻烦哪,还是算了
不过支持LZ先
回复

使用道具 举报

dragonchang 发表于 2007-9-12 11:22:44 | 显示全部楼层
支持一个~~~~~~
回复

使用道具 举报

pc77maikongjian 发表于 2007-9-12 17:22:18 | 显示全部楼层
谢谢经验分享!:)
回复

使用道具 举报

雪忧 发表于 2007-10-2 02:14:10 | 显示全部楼层
这个支持二级域名泛解析不?

我开始只是简单的在config.php里配置,SS用空"",BBS用"/bbs",就是二级解析用不对,返回首页总会出现一些错误,后来多域名也只能用一个域名了!
回复

使用道具 举报

likethis 发表于 2007-10-5 09:40:16 | 显示全部楼层
前排啊,:)
回复

使用道具 举报

羽翼时空 发表于 2007-10-6 03:17:21 | 显示全部楼层
SS一定要是跟目录吗?
回复

使用道具 举报

wxjback 发表于 2007-12-10 18:12:39 | 显示全部楼层
如果好用的话,绝对是好东西哦
回复

使用道具 举报

pc77maikongjian 发表于 2007-12-11 10:55:49 | 显示全部楼层
学习再学习,再次感谢楼主分享.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 04:01 , Processed in 0.027629 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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