除了删除我的CodeIgniter安装的index.php部分之外,我从未重写过URL,而且我在.htaccess文件中使用了一个复制粘贴的代码段。我没有时间真正了解代码片段的作用;我基本上很擅长重写网址。
我有我的网络应用程序的移动版本。我将移动用户重定向到子域名m.myhost.tld
。但是,由于我使用(一个)CodeIgniter(安装),我必须将这些移动用户发送到特定于移动设备的控制器,在我的情况下/mobile/
。因此,控制器始终显示在我的地址栏中。
我只是觉得这不是很干净,我正在寻找一种重写URL的方法;但事实是,我甚至不确定这是否可能......因此我的问题。
我想摆脱/mobile
控制器部分。这可能吗?
一些例子:
我当前的移动“root”文件夹是
http://m.myhost.tld/mobile
我想把这个变为
http://m.myhost.tld/
目前,当我转到http://m.myhost.tld/
时,它会重定向到我的CodeIgniter应用程序的默认控制器,该应用程序是Web应用程序的“桌面”版本的一部分。
另一个例子:
转动
http://m.myhost.tld/mobile#mobile/about
进入
http://m.myhost.tld/#mobile/about
我不确定我在这里是否有任何意义。我在脑子里,但就像我说的那样,我不知道可能是什么。如果用户位于m
子域,我想隐藏我的网址的/mobile
部分。但是,只有当我们在m
子域上时,才会触及“桌面”版本(位于www
)。
就像我现在说过几次,我不确定什么是可能的,我正在寻找的东西可能只是太复杂或什么。我想我会问,因为通过询问学习是我最擅长的。如果事实证明这是一个愚蠢的问题,请不要太苛刻,先生专业人士;)
编辑: 我以为我会编辑,因为我不想出错。我不一定在寻找我的问题的确切答案。我也欢迎可以指导我找到解决方案的文档/教程/文章。如果我能设法找到自己的解决方案,我当然会学到很多东西。
非常感谢。
答案 0 :(得分:2)
这可能是一个简单的解决方案,但为什么不在你的路由配置中做一些简单的事情,如
在您的配置中执行类似
的操作if ($_SERVER['SERVER_NAME'] == 'm.myhost.tld')
$route['default_controller'] = "mobile";
这会使默认的控制器移动,所以你不必拥有/ mobile ...
正如我所说的那么简单
答案 1 :(得分:0)
编辑:不起作用,但也许某人可以将其转变为
试试这个:
RewriteCond $1!^mobile/
RewriteCond %{HTTP_HOST} ^m\.myhost\.tld
RewriteRule (.*) /mobile/$1 [L]