为现有CodeIgniter站点在子域中提供移动应用程序

时间:2015-03-25 03:40:45

标签: .htaccess codeigniter

我有一个基于CI的主站点(www.example.com)。最近我想到使用JQuery mobile在移动子域(m.example.com)上创建移动版本的网站,但是想要使用我主应用程序中的大部分代码(特别是模型。两者的查询相同)。

思考和实施过程与此处所述完全相同 Redirecting to mobile subdomain in a CI application

我有:

controller  
home.php (for main site)  
mobile.php (for mobile site) 

通过很少的研究,我能够像这样使用“config.php”和“routes.php”来做一个技巧。

[config.php]
$config['base_url'] = 'http://www.example.com';
$config['mobile_url']   = 'http://m.example.com';


[routes.php]

switch ( $_SERVER['HTTP_HOST'] ) {
    case 'm.example.com':
        $route['default_controller'] = "mobile";
    break;
    default:
        $route['default_controller'] = "home";
    break;
}

到目前为止,这看起来还不错,但它根本无法发挥作用。

当我去m.example.com时,它加载了网站的移动版本就好了,但我不能再去那里了。例如,我想在该站点的移动版本上实现搜索功能,但不能为该子域实现子功能。

m.example.com/search/term 

根本没用。它改为执行主站点并呈现主站点的视图。

这更像是主站点的子页面(www.example.com/mobile),而不是不同域中的不同应用程序。

现在我正在考虑在相同的CI安装上为移动版创建单独的应用程序

让我们说

system
mainsite
mobilesite
www

我的问题:

1)创建移动版应用程序的最佳方法是什么,我可以重用主应用程序中的代码?我应该继续使用我的旧方法(重定向到控制器)还是构建单独的应用程序?

2)如果要使用两个单独的应用程序,如何根据域名重定向到正确版本的index.php文件以进行正确的应用程序。即,如果用户键入www.example.com,则会转到主站点,而m.example.com应重定向到移动版本。目前我的主应用程序在网站上运行,只有一个index.php。

我真的很感激一些建议和提示。

顺便说一下,我搜索了一下这个主题,但找不到我想要做的确切答案。

我找到了像

这样的东西

http://code.tutsplus.com/tutorials/basecamp-style-subdomains-with-codeigniter--net-16330

但我不是在不同的子域上提供相同的应用程序后,而是我想为子域创建单独的应用程序。

这个主题 Is there an easy way to create subdomains on codeigniter?似乎要到某个地方,但我不清楚

提前致谢。

1 个答案:

答案 0 :(得分:1)

刚才意识到我正在以错误的方法解决问题。

实际上这解决了问题,这正是我想要的。

  1. 从我的托管cPanel创建了一个移动子域。
  2. 为移动网站创建了等效的 1:1 桌面网站视图。
  3. 使用MobileDetect脚本作为帮助程序,并根据检测到的设备,路由到正确的视图。
  4. 谢谢大家...希望这会有所帮助。