2010-10-02 38 views
6

我不是一个非常有经验的程序员,并且第二次使用CodeIgniter。Codeigniter,域到某个地区的网站

假设我有www.domain1.com。所以我会说,有3个控制器/ area1,/ area2,/ area3。如果我将基本URL设置为www.domain1.com,用户可以访问它们,如www.domain1.com/area1等。但我的问题是,客户希望某个区域的网络,比如area2,在其自己的领域中作为一个微型网站,因此他想通过www.domain2.com访问area2。

我不知道如何使用CodeIgniter来处理这个问题。假设他注册了www.domain2.com并将其设置为指向相同的DNS,服务器等。访问URL www.domain2.com时,如何让CodeIgnitor执行控制器区域2?

也许会改变$config['base-url']?路由? .htaccess?请,如果你已经解决了这个问题,不胜感激代码的例子。

编辑:我会把我想要得到的网站的例子。

我笨的一个正常的安装(外部主机,我无法访问httpd.conf)它是一台机器上,而该网站的根应该由www.domain1.com

所有域名都可以访问外部注册。所以我有家庭控制器,它显示了主页面视图。假设该网站有3个区域/ area1/area2/area3及其相应的控制器,显示这些区域的视图。

我的客户要强调的领域之一,该控制器/面积2显示了一个,他想用不同的域该区域,www.domain2.com

我能做些什么,以便当用户浏览到www.domain2.com,CI将他们重定向到www.domain1.com/area2?例如,我可以根据收到的URL修改$config['base_url'],还是不可能?我需要修改.htaccess文件吗?

+0

如果我是正确的area2的控制器是在所有其他控制器相同的域? – ITroubs 2010-10-02 14:16:48

+0

所有的控制器都在同一个托管的同一个文件夹上,只有一台物理机器,一台托管) – 2010-10-03 08:16:46

+0

我只是希望能够查看/ area2控制器的结果使用不同的域名访问codeigniter根目录。 – 2010-10-03 08:17:32

回答

7

很多搜​​索之后,我发现,似乎工作的解决方案,非常容易说实话:

修改routes.php

if ($_SERVER['HTTP_HOST']=="www.domain2.com") { 
    $route['default_controller'] = "area2"; 
} 

不需要mod重写。

+0

我喜欢这个,你也需要确保domain1.com不能访问area2,例如。添加:if($ _ SERVER ['HTTP_HOST'] ==“www.domain1.com”){$ route ['area2'] =“diff_controller”;} – 2010-10-05 16:08:10

+0

你应该接受你的问题的答案,点击绿色在每个答案旁边打勾 - 这会标记问题已解决,并且会给提问者和回答者一个小的回报以解决他们的问题。在这种情况下,既然你解决了你自己的问题,你应该接受这个答案。 – 2010-11-04 03:34:40

+0

这是最好的解决方案,我现在正在使用的东西也是。 – Ash 2010-12-17 19:46:50

0

这里是一个有用的链接.... http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html 从来没有真正做到这一点我自己,但是这似乎是去了解它,而不带有两个词的安装方式。祝你好运。

+0

Cheked the site ... – 2010-10-03 08:24:28

+0

这不是真的我的情况,所以我不想像他那样有diffreent aplications。我只想访问我的唯一应用程序的一部分(它是整个网络的一部分)与一个不同的域。检查我的编辑示例。 – 2010-10-03 08:25:48

-1

我想到的第一个解决方案是使用Apache mod_rewrite,但据我所知只能用于内部重定向(即驻留在同一服务器/域中的资源)。

使用iframe怎么样?您可以使用全页面iframe来设置domain2.com主页,该页面从domain1.com/area2获取内容。

+0

然后我会尝试研究mod_rewrite的posibilities。 iframe的想法也是一个不错的选择,也会尝试。 – 2010-10-03 14:12:03

0

你肯定需要去mod_rewrite的方式

+0

我会尝试学习mod_rewrite posibilities然后 – 2010-10-03 14:10:45