笨,绕过主或默认控制器

问题描述:

我试图找到解决办法,但我觉得我挺在这里做得不对,笨,绕过主或默认控制器

我希望任何一个与笨路由的良好的知识可以帮助我在这方面。

我想那是什么,

我已经默认控制器名为main

$route['default_controller'] = "main"; 
$route['404_override'] = ''; 

我的网址都是一样

mydomain.com/main/#home 
mydomain.com/main/#search 
mydomain.com/main/#login 

我想是删除/隐藏main从中心和链接可以直接工作。 这样

mydomain.com/#home

但是我没有成功有点笨使用的文件。 这就是我做到的。 在路由文件添加此

$route['(:any)'] = "main/$1"; 

它的工作,但它与其他环节搞砸。

首先现在domain.com/main/#home停止工作。 秒,现在我不能有其他控制器的名字在这里?

我的意思是,如果我尝试这个domain.com/virtualvault/#search,它不会工作..

什么,我想有一个, 当我去domain.com/main/#home它应该去的主页 还当我尝试domain.com/#home它应该也请到相同的主页 不要忘记我希望其他控制器能够完全工作。 我的意思是,domain.com/othercontrollername/#function应该工作。

什么,以及如何去实现它,或的.htaccess路线PHP文件..

我甚至试过这种路线如下代码。

$route['#+(:any)'] = "main/#+$1"; 

但我在这个路由或.htaccess文件中并不好。

任何想法如何实现它?

// The below line is for the old controller to work as before 
$route['main/(:any)'] = "main/$1"; 

//This line is for making other controllers work as before, you have to put them all 
$route['virtualvault/(:any)'] = "virtualvault/$1"; 

//This is the last line; the order is important 
$route['(:any)'] = "main/$1"; 
+0

谢谢,它解决了我的问题.. – 2013-04-26 13:12:29

+0

高兴我可以帮助:) – despina 2013-04-26 13:51:18

如果您只需要这三个URL(主页,搜索和登录)在没有控制器名称的情况下工作,只需将其中的三个URL放在routes.php($route['login'] = "main/login";等)中,并且不使用通配符以防止其他来自重新路由的网址。

于是,所有的人都应该是:

$route['home'] = "main/home"; 
$route['search'] = "main/search"; 
$route['login'] = "main/login"; 
+0

没有,它不只是这三个网址,我只给了例子,这些网址, Isin't还有没有其他更好的办法,像的.htaccess文件或路由器功能的东西? 是的,有一点很常见,那就是我所有的url函数都会有#,就像你在例子中看到的那样。 我正在使用jquery烧烤。 – 2013-04-26 10:08:35

+0

我仍然认为最好的做法是在routes.php或.htaccess中制作这样的白名单......否则,您将无法使这些链接同时工作(使用'main'和without)。 – Shomz 2013-04-26 10:23:12