用户
 找回密码
 入住 CI 中国社区
搜索
查看: 16473|回复: 8
收起左侧

[Web] 如何使用CI框架支持多域名

[复制链接]
发表于 2008-4-28 14:54:06 | 显示全部楼层 |阅读模式
使用CI框架,如果支持多域名呢?

如下说明:

1、入口文件index.php
2、每个模块对应一个三级域名
      2.1 模块Blog,对应http://blog.xxx.com;模块Book,对应http://book.xxx.com
            以上rewrite后可以为http://www.xxx.com/bloghttp://www.xxx.com/book

有谁知道这样的问题吗?帮忙解决一下,谢谢。
发表于 2008-4-28 15:03:18 | 显示全部楼层
 楼主| 发表于 2008-4-28 16:05:25 | 显示全部楼层
原帖由 Hex 于 2008-4-28 15:03 发表
CI 多应用程序请参考 http://codeigniter.org.cn/user_guide/general/managing_apps.html


这个多应用已经试过了,这个可以。

但是就一个入口文件的话实现不了多域名。

如果把index.php改名试了也可以。但是把它移入下一层目录就不行了。提示加载不了config
发表于 2008-4-28 16:16:43 | 显示全部楼层
呵呵,CI 多应用程序只有这一条路。
发表于 2008-5-1 07:32:08 | 显示全部楼层
$site_matrix = array(
"$site1" => "$path1",
"$site2" => "$path2"
);

$def_pg = "$def_path";
$server = $_SERVER["HTTP_HOST"];
$pg = $site_matrix[$server];
if($pg == "") $pg = $def_pg;
header("Location: $pg");

多年前整理的,不知道行不?
发表于 2008-5-30 15:55:21 | 显示全部楼层
将DOMIAN rewrite 成一个参数传入 index.php?subdomian=xxx.domain.com  在程序里再解析..
域名设置为泛解析,这个是肯定的.
发表于 2008-6-11 17:09:40 | 显示全部楼层
原帖由 旭日 于 2008-4-28 14:54 发表

使用CI框架,如果支持多域名呢?

如下说明:

1、入口文件index.php
2、每个模块对应一个三级域名
      2.1 模块Blog,对应http://blog.xxx.com;模块Book,对应http://book.xxx.com
            以上rewrite后可以为http://www.xxx.com/bloghttp://www.xxx.com/book

有谁知道这样的问题吗?帮忙解决一下,谢谢。


一个大概的思路:

1、域名支持泛域名解析最好;
2、需要支持rewrite的模块;

以Linux下Apache为例:
http://book.ci.com/item/10001.html -> http://www.ci.com/index.php/book/item/10001.html

前面的url地址是显示给用户的某一本书的地址,CI中实际地址在后面,只要写规则转换上面的地址就可以了。

这里引入一个RewriteMap文件,实现多个二级域名对应一个控制器,下面是内容:

book.ci.com   book
books.ci.com  book
reader.ci.com book
letter.ci.com   book

保存成sub-domain.map 文件,放在 /etc/httpd/conf/sub-domain.map下面

下面是规则
RewriteMap        case-lower         int:tolower
RewriteMap        sub-domain        txt:/etc/httpd/conf/sub-domain.map   
RewriteCond       ${case-lower:%{HTTP_HOST}}     ^(.+)$
RewriteCond       ${sub-domain:%1}      ^(/.*)$
RewriteRule       ^/(.*)$           /index.php/%1/$1


注明:仅是一个思路,规则没有测试,希望有帮助。

[ 本帖最后由 LEMON 于 2008-6-11 21:13 编辑 ]

评分

参与人数 1威望 +3 收起 理由
Hex + 3 原创内容

查看全部评分

发表于 2008-7-16 16:45:17 | 显示全部楼层
PHP复制代码
if($HTTP_HOST=="www.aaa.com"){
    $application_folder = "application/aaa";
}elseif($HTTP_HOST=="www.bbb.com"){
    $application_folder = "application/bbb";
}
复制代码

估计这样可以吧
 楼主| 发表于 2008-7-21 17:13:28 | 显示全部楼层
谢谢大家,这个问题已经搞定了。
正如Hex发的这个手册的说明一样。
其实是我把它想复杂了。

大概目录是这样:

[路径]/system(system可以放在服务器的任何地方)
[网站目录]/blog/app(blog应用程序)
[网站目录]/blog/index.php(blog入口)
[网站目录]/book/app(book应用程序)
[网站目录]/book/index.php(book入口)

这样子就可以达到效果了。当然,路径的配置要修改index.php和config.php

本版积分规则