1

我试图找到解决方案,但我认为我在这里做错了什么,

我希望任何对codeigniter路由有很好的了解的人都可以在这方面帮助我。

我想要的是,

我有名为的默认控制器main

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

我的网站网址就像

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

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

mydomain.com/#home

但是,我确实使用 codeigniter 文档取得了一些成功。这就是我为实现它所做的。在路由文件中我添加了这个

$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 文件。

任何想法如何实现它?

4

2 回答 2

4
// 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"; 
于 2013-04-26T10:47:15.100 回答
0

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

所以,它们都应该是:

$route['home'] = "main/home";
$route['search'] = "main/search";
$route['login'] = "main/login";
于 2013-04-26T10:04:02.453 回答