旭日 发表于 2008-4-28 14:54:06

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

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

如下说明:

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

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

Hex 发表于 2008-4-28 15:03:18

CI 多应用程序请参考 http://codeigniter.org.cn/user_guide/general/managing_apps.html

旭日 发表于 2008-4-28 16:05:25

原帖由 Hex 于 2008-4-28 15:03 发表 http://codeigniter.org.cn/forums/images/common/back.gif
CI 多应用程序请参考 http://codeigniter.org.cn/user_guide/general/managing_apps.html

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

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

如果把index.php改名试了也可以。但是把它移入下一层目录就不行了。提示加载不了config

Hex 发表于 2008-4-28 16:16:43

呵呵,CI 多应用程序只有这一条路。

nio 发表于 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");

多年前整理的,不知道行不?

ajivanet 发表于 2008-5-30 15:55:21

将DOMIAN rewrite 成一个参数传入 index.php?subdomian=xxx.domain.com在程序里再解析..
域名设置为泛解析,这个是肯定的.

LEMON 发表于 2008-6-11 17:09:40


原帖由 旭日 于 2008-4-28 14:54 发表 http://codeigniter.org.cn/forums/images/common/back.gif

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

如下说明:

1、入口文件index.php
2、每个模块对应一个三级域名
      2.1 模块Blog,对应http://blog.xxx.com;模块Book,对应http://book.xxx.com
            以上rewrite后可以为http://www.xxx.com/blog和http://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.combook
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 编辑 ]

yygcom 发表于 2008-7-16 16:45:17

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
页: [1]
查看完整版本: 如何使用CI框架支持多域名