重定向到CI应用程序中的移动子域

时间:2011-05-11 16:48:43

标签: php codeigniter redirect mobile mobile-website

我有一个网络应用程序,我想用jQuery Mobile创建一个移动版本。现有的应用程序是在CodeIgniter中构建的;我将尽可能使用相同的控制器,模型; (特别是模型,因为我无论如何都需要相同的数据,可能需要编写新的控制器)。

我对如何开始感到困惑。我想将我的移动版本放在子域名(m.myhost.tld)上,但是..因为我的应用程序位于www.myhost.tld,我不想把它全部复制到另一个文件夹并维护两个,我有点困惑。

我知道我可以使用CodeIgniter中的用户代理库来检测移动浏览器并相应地加载视图;我只是不知道如何使用子域。我是否需要在此处自定义app/config/routes.php文件,还是可以通过某些.htaccess魔法修复此问题?我对.htaccess几乎没有经验。我唯一知道的是如何从CI应用程序中删除我的index.php,这是一个copypasta代码段。

编辑:我想知道我是否可以使用像this one这样的教程来做我想做的事情?它似乎做了或多或少相同的事情,只是使用动态用户名而不是简单的“m”。

编辑2:我想更多信息。

假设我使用CodeIgniter附带的用户代理库检测移动浏览器。我想将这些浏览器定向到m.myhost.tld。但是,我想在移动网站上显示的内容来自名为mobile的控制器,我也可以通过www.myhost.tld/mobile/访问该控制器;所以我的问题是,是否有办法将像...这样的网址www.myhost.tld/mobile/about路由到m.myhost.tld/about。我甚至不确定这是否可行,teehee。还在学习!

如果您能给我任何建议,我将不胜感激。非常感谢!

1 个答案:

答案 0 :(得分:1)

如果要在不同的主机中共享相同的文件,则必须在Web服务器中分配站点的文档根文件夹,这是静态文件的说明,但是您可以理解。

浏览器 - >主持人:z.y.xxx [ip.ip.ip.ip] - >网络服务器 - > read filesystem:document root + browser request path

所以如果您的文档根目录是:

/hosting/http/z.y.xxx/htdocs

并且请求是/path-to-static/index.html服务器尝试阅读:

/hosting/http/z.y.xxx/htdocs/path-to-static/index.html

总之,您在Web服务器中创建了新的主机m.mysite.tld,并且您更改了文档根目录www.mysite.tld也可以使用主机别名的指令,例如Apache ServerAlias指令。有很多关于如何配置Web服务器的文档。

您可以使用$_SERVER['HTTP_HOST']变量处理php中的主机名。

如果您可以指定更多,我可以提供更多帮助。

度过愉快的一天