CodeIgniter 404 未找到控制器

Posted

技术标签:

【中文标题】CodeIgniter 404 未找到控制器【英文标题】:CodeIgniter 404 not found controller 【发布时间】:2016-10-12 10:32:15 【问题描述】:

我知道这个问题已经被问过很多次了,但我真的无法解决这个问题。 我的默认控制器正在工作,但如果我想访问另一个控制器,我将遇到 404 问题。

我的控制器文件名大写为 Utilisateur.php, 所以我试图通过<a href="Utilisateur/inscription">inscription</a>访问控制器功能inscription

这是我的配置:

$config['base_url'] = 'http://localhost:63342/WeBusy/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

这是我的根:

$route['default_controller'] = 'accueil';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

最后是控制器:

class Utilisateur extends CI_Controller 

    public function inscription()
        $data = array('header' => 'HeaderAccueil.php', 'body' => 'utilisateur/AjoutUtilForm.php');
        $this->load->view('Structurehtml.php', $data);
    

谢谢

【问题讨论】:

在你的函数 inscription() - 删除所有内容并放入 echo 'test'; 那么你就可以真正看到它是路线还是别的什么了。 完成了,我仍然有 404 错误 http://localhost:63342/WeBusy/index.php/utilisateur/inscription 有效吗? 【参考方案1】:

给出你的锚点的完整路径

<a href="http://localhost:63342/WeBusy/Utilisateur/inscription">inscription</a>

但最好的做法是提供动态 url,例如使用 url 助手或常量。

例如,如果使用 url 辅助函数,您的锚路径就像。

<a href="<?php echo site_url(); ?>Utilisateur/inscription">inscription</a>

不要忘记在自动加载文件或类构造函数中加载 url 帮助程序。

【讨论】:

谢谢,但考虑到我在点击链接时已经有了正确的路径 (localhost:63342/WeBusy/Utilisateur/inscription),这并不能解决任何问题。【参考方案2】:

我发现了问题, 所以我需要在应用程序的根目录中创建一个 .htaccess 文件以删除 index.php 并且这仍然不适用于 phpstorm,也许需要配置一些东西,但它在 EasyPhp 上运行顺利:)

【讨论】:

【参考方案3】:
    检查您的控制器文件名,应该是 Utilisateur.php (ucfirst)。 检查您的 mod_rewrite 是否有效:
      http://localhost:63342/WeBusy/index.php?q=utilisateur/inscription 将新方法 index() die('test'); 添加到 Utilisateur 控制器并更改 $route['default_controller'] = 'accueil';至:$route['default_controller'] = 'utilisateur';

【讨论】:

以上是关于CodeIgniter 404 未找到控制器的主要内容,如果未能解决你的问题,请参考以下文章

后控制器挂钩不会在 codeigniter 中未找到的控制器上抛出 404

为啥我在 codeigniter 中的分页不起作用? (404 未找到)

CodeIgniter 404 页面未找到,但为啥?

在远程服务器上配置 codeigniter(404 未找到)

Codeigniter 404 Page Not Found 找不到您请求的页面

只有默认控制器正在工作,其余的404未找到