【问题标题】:Codeigniter, bypassing the main or default controllerCodeigniter,绕过主控制器或默认控制器
【发布时间】:2013-04-26 09:58:02
【问题描述】:

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

我希望任何对 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 文件。

任何想法如何实现它??

【问题讨论】:

    标签: php .htaccess codeigniter codeigniter-routing


    【解决方案1】:
    // 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"; 
    

    【讨论】:

      【解决方案2】:

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

      所以,它们都应该是:

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

      【讨论】:

      • 不,它不只是三个url,我只是举了这些url的例子,难道没有其他更好的方法,比如.htaccess文件或路由器功能吗?是的,有一件事很常见,我的所有 url 函数都将具有 # ,如您在示例中所见。我正在使用 jquery bbq。
      • 我仍然认为最好在 routes.php 或 .htaccess 中创建这样的白名单...否则,您将无法使链接双向工作(使用main 和没有)。
      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2015-03-22
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多