Codeigniter网址路径

时间:2011-06-29 15:25:06

标签: php codeigniter codeigniter-url

这是我可以提出这个问题最简单的方法,因为我还没有完全理解发生了什么,或者我做得不对。

我遇到了网址问题。

http://localhost/index.php/user http://localhost/相同 的 http://localhost/index.php/user/something http://localhost/something

不同

如何让http://localhost/something工作?

是否必须http://localhost/user/something,我该如何做到这一点?

4 个答案:

答案 0 :(得分:2)

您需要了解CodeIgniter的URL如何工作。

  • 网址由一些细分组成。 http://localhost/index.php/user/something/thing在此示例user中,somethingthing是网址的一部分。

  • URL的段指示哪个控制器以及该控制器的哪个方法将运行。 http://localhost/index.php/user/something/thing在此示例中,调用something控制器中的方法user,并将thing作为参数传递给该方法。

  • 网址的第一部分表示控制器。

  • URL的第二段表示该控制器的方法。

  • 以下段作为参数发送到该方法。

但是有一些默认值。

  • 如果您的网址为http://localhost/index.php/something,则指定了something作为控制器,但由于您未指定任何方法,因此调用默认方法index。因此,上述网址与http://localhost/index.php/something/index

  • 相同
  • 如果您的网址为http://localhost/index.php/,则表示您未指定任何细分受众群(无控制器和方法)。因此application\config\routes.php中指定的默认控制器是加载的控制器。将调用该控制器的哪种方法?当然是index方法。

    - 您可以通过在$route['default_controller'] = "site";的文件中将application\config\routes.php更改为适合您应用的内容来设置默认控制器。

  • 如果您希望http://localhost/user/somethinghttp://localhost/index.php/user/something相同,则必须为您的应用创建自定义路由。关于here的更多信息。

答案 1 :(得分:1)

http://localhost/something表示您正在调用Something控制器类的索引方法

http://localhost/user/something表示您正在调用User控制器类中的something方法。

这有意义吗?

答案 2 :(得分:1)

为了使http://localhost/something有效,您需要一个名为something的控制器,其方法为index。这与访问http://localhost/something/index

相同

或者,http://localhost/user/something表示您拥有一个名为user的{​​{1}}控制器。

这有帮助吗?

答案 3 :(得分:0)

要从您的网址中删除index.php,您必须使用所描述的mod_rewrite方法here

然后从网址中删除控制器名称(用户),您需要使用routes

在您的情况下,您可以将$route['^(something|something_else|etc)(/:any)?$'] = "user/$0";添加到routes.php文件