0

这是让我觉得自己像个 idjut 的事情之一。

好的 - 所以我刚刚开始使用 Codeigniter,我只是花了很多时间来了解 URL 系统。

以下是一些相关的配置设置(我现在在 MAMP/localhost 上)

$config['base_url'] = 'http://localhost:8888/MY_SITE/';
$config['index_page'] = 'index.php';
$route['default_controller'] = "home";

我的.htaccess文件现在是空白的。

所以我有一个“家”控制器,我打得很好,它加载了我的“home_view”。在上面我有一个注册链接...

<p>Not a member yet? <a href="<?php echo site_url('registration'); ?>">Sign Up!</a></p>

这呈现为以下 HTML ...

<a href="http://localhost:8888/MY_SITE/index.php/registration">Sign Up!</a>

到目前为止一切都很好。但是当我单击时,我得到一个“404 Page Not Found”。我一个带有加载“registration_view.php”的索引方法的“registration.php”控制器。

这是我的地址栏中显示的内容

http://localhost:8888/MY_SITE/index.php/registration 

为什么我不打它?

我的日志显示..

ERROR - 2012-11-13 18:21:12 --> 404 Page Not Found --> registration/index

.. 为什么命运如此恨我?

4

1 回答 1

2

404 的许多可能和最接近的原因之一可能是index()您的控制器中没有功能。可以发下代码吗??

编辑(因为ans被否决了)我必须给出更多解释。

在这种情况下,404 错误的可能原因可能是 -

  1. 您的默认控制器设置为home并且您获得 404 的 url 正在调用registration控制器。
  2. 如果没有注册控制器,你会得到 404。
  3. 如果registration您的默认家庭控制器中没有命名为存在的功能。
  4. URI 中的第一个参数(在 index.php [如果 htaccess 不用于删除 index.php] 之后)是针对将被调用的控制器。index.php 之后的第二个参数是将从第一个参数中提到的控制器调用的函数。在这两种情况下,即控制器和功能不存在,您都会得到 404。
  5. 如果注册是功能并且它的可见性设置为,private那么你会得到 404。

请注意,为了使 URL 更具可读性,您应该包含 htaccess 并添加规则以删除 index.php。

于 2012-11-13T17:45:33.143 回答