很难理解Codeigniter URL

时间:2012-11-13 17:39:43

标签: php codeigniter

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

好的 - 所以我刚刚开始使用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找不到页面”。我 一个“registration.php”控制器,带有一个加载“registration_view.php”的索引方法。

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

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

我为什么不点击它?

我的日志显示..

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

..为什么命运恨我?

1 个答案:

答案 0 :(得分:2)

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

编辑(因为我已经失败了)我必须提供更多解释。

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

  1. 您的默认控制器设置为主页,您获得404的网址正在调用registration控制器。
  2. 如果没有注册控制器,则会获得404。
  3. 如果您的默认家庭控制器中没有名为registration的功能。
  4. URI中的第一个争论(在index.php之后[如果htaccess不用于删除index.php])用于将被调用的控制器。 index.php之后的第二个参数是将从第一个参数中提到的控制器调用的函数。在这两种情况下,即控制器和功能不存在,你得到404。
  5. 如果注册功能正常,且其可见性设置为private,那么您将获得404。
  6. 请注意,要使URL更具可读性,您应该包含htaccess并添加规则以删除index.php。