Php 很难理解Codeigniter URL

Php 很难理解Codeigniter URL,php,codeigniter,Php,Codeigniter,这是其中一件让我觉得自己像个瘾君子的事情 好的-所以我刚开始使用Codeigniter,我只是有一个地狱般的时间让我的头围绕URL系统 下面是一些相关的配置设置(我现在正在使用MAMP/localhost) 我的.htaccess文件目前为空 所以我有一个“主”控制器,我点击它,它加载我的“主视图”。在上面我有一个注册链接 <p>Not a member yet? <a href="<?php echo site_url('registration'); ?>"&g

这是其中一件让我觉得自己像个瘾君子的事情

好的-所以我刚开始使用Codeigniter,我只是有一个地狱般的时间让我的头围绕URL系统

下面是一些相关的配置设置(我现在正在使用MAMP/localhost)

我的
.htaccess
文件目前为空

所以我有一个“主”控制器,我点击它,它加载我的“主视图”。在上面我有一个注册链接

<p>Not a member yet? <a href="<?php echo site_url('registration'); ?>">Sign Up!</a></p>
我为什么不打它

我的日志显示

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

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

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

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

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

  • 您的默认控制器设置为home,而您获取404的url正在调用
    注册
    控制器
  • 如果没有注册控制器,你可以得到404
  • 如果默认主控制器中没有名为“注册”的函数
  • URI中的第一个参数(在index.php之后[如果htaccess不用于删除index.php])是针对将被调用的控制器的。index.php之后的第二个参数是将从第一个参数中提到的控制器调用的函数。在这两种情况下,ie控制器和功能都不存在,您将获得404
  • 如果注册是函数,并且它的可见性设置为
    private
    ,则得到404

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

    请发布您的注册控制器。默认情况下,Code Igniter将尝试在您的主控制器上调用注册。如果你给你的家庭控制器添加了注册功能,你会放弃404吗?我相信您将需要更改htaccess以摆脱index.php并加载其他文件controllers@stormdrain .. 嗯,就在那里。愚蠢的打字错误,但你的评论让我觉得它对你很有意义。@emartel好的。。我知道默认情况下CI将转到“默认控制器”(在本例中为“主控制器”)。但请帮我理解一些事情。。如果我有一个“单段url”(即MY_SITE/index.php/contact)。。它将首先寻找“联系人”作为默认控制器的一种方法,然后如果在那里找不到它,它将作为一个单独的控制器来寻找,对吗?这不是问题,但我不知道你为什么被否决,所以我给了你一个放弃。我没有否决他,但是你的问题清楚地表明你的注册控制器中有一个索引方法…@MaximeMorin谢谢你的澄清。。你刚才还回答了我上面提出的一个后续问题。问题是我的注册控制器输入错误。我将标记您为正确答案,以确保您的回答的完整性。@MaximeMorin我以前使用过.htaccess,但为了解决问题已将其删除。如果我的站点位于子文件夹中,我可以使用相同的.htaccess文件吗?Ie用于“/PROJECTS/THIS\u SITE/VERSION\u ONE/”。。我是否可以像网站位于webroot一样使用相同的.htaccess?@K.K.Smith谢谢,我阅读了您对
    emartel
    评论的后续问题。在这种情况下,我认为,若在默认控制器中存在一个函数,并且您将其作为url中的第一个参数传递,那个么它不会在默认控制器中查找它。相反,CI将其视为单独的控制器。
    <a href="http://localhost:8888/MY_SITE/index.php/registration">Sign Up!</a>
    
    http://localhost:8888/MY_SITE/index.php/registration 
    
    ERROR - 2012-11-13 18:21:12 --> 404 Page Not Found --> registration/index