立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT升级至v2.1
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的免费网店托管-卖否
PHP实战精英班培训 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
注册付费广告征集
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
第二届PHP中国开源发展及人才状况调查
发新话题
打印

[已解决] 修改论坛程序实现多域名访问SS/XS

本主题由 antdk 于 2008-3-9 12:04 推荐主题

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

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

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

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

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

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

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

2、论坛首页ss/xs地址点击后回到首页,点击个人空间也不对,这个需要修改template\default目录(我使用默认风格,如果其他风格要修改同一文件)下的discuz.htm文件。
打开文件,搜索$supe[siteurl],注意,这里的修改分两种情况,如果只是单一出现的,将它修改为 / ,如果是地址前面的,删除就可以了,例如:[quote]<!--{if $supe['status']}--><a href="$supe[siteurl]" target="_blank">$supe['sitename']</a> - <!--{/if}-->[/quote]修改为:[quote]<!--{if $supe['status']}--><a href="/" target="_blank">$supe['sitename']</a> - <!--{/if}-->[/quote]而类似:[quote]<a href="$supe[siteurl]/?uid/$discuz_uid" target="_blank">{lang space}</a>[/quote]这样的修改为:[quote]<a href="/?uid/$discuz_uid" target="_blank">{lang space}</a>[/quote]就可以了,文件需要修改的地方六处。
3、修改同目录下的jsmenu.htm文件,搜索$supe[siteurl],删除就可以了,有两处。
4、修改论坛根目录下的blog.php文件找到:[code]if($supe['status'] && $member['xspacestatus']) {
        dheader("location: $supe[siteurl]?uid/$uid");[/code]修改为:[code]if($supe['status'] && $member['xspacestatus']) {
        dheader("location: /?uid/$uid");[/code]5、修改根目录下的space.php文件,找到:[code]if($spacestatus && $supe['status'] && $member['xspacestatus']) {
        dheader("location: $supe[siteurl]?uid/$uid");[/code]改为:[code]if($spacestatus && $supe['status'] && $member['xspacestatus']) {
        dheader("location: /?uid/$uid");[/code]6、修改根目录下的viewthread.php文件,找到:[quote]$navigation = '» <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> » '.$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 = '» <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']);
}[/quote]修改为:[quote]$navigation = '» <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> » '.$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 = '» <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']);
}[/quote]现在论坛首页和帖子内容页面除了热点导读里的链接不对之外,其他的都基本没有问题了,下面就解决这个。

7、修改论坛include目录下的cache.func.php文件,找到:[quote]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>';
                                }[/quote]修改为:[quote]        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>';
                                }[/quote]现在看看热点导读里的链接已经正确了。
到这里修改就告一个段落了,现在可以看看多个地址的访问结果了,应该是没有问题的,使用双线空间的不妨试试。

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





演示站点:[url=http://sq.hcclib.net]http://sq.hcclib.net[/url]

[[i] 本帖最后由 antdk 于 2008-6-30 18:05 编辑 [/i]]
本帖最近评分记录
  • 安笛 威望 +10 精品文章 2007-9-7 17:02
  • 安笛 金币 +10 精品文章 2007-9-7 17:02
  • 紫琼 威望 +10 精品文章 2007-9-7 16:49
  • 紫琼 金币 +10 精品文章 2007-9-7 16:49
  • 茄子 威望 +10 精品文章 2007-9-7 16:48
  • 茄子 金币 +10 精品文章 2007-9-7 16:48
借楼,补充下哈:(一个振奋人心的消息)
跨域将不再是问题--W3C新提案 http://www.w3.org/TR/access-control/


                                                                                                          --by 也许


最新的论坛6.1.0由于使用UCenter进行整合,所以不需要修改了。或许需要修改一下ss/xs,但是由于不是开源软件,估计这个系列到此为止。

                                                                           ----于2008年4月5日。

[ 本帖最后由 antdk 于 2008-4-5 00:17 编辑 ]


2
留个记号!!!!!!!!!
记号一个!
安徽人在上海联谊会
http://www.anhuichina.cn
记号一个!
非常感谢
留个脚印
先行收藏
日后再来
发新话题
版块跳转