这是我可以提出这个问题最简单的方法,因为我还没有完全理解发生了什么,或者我做得不对。
我遇到了网址问题。
http://localhost/index.php/user
与 http://localhost/
相同
的但
http://localhost/index.php/user/something
与 http://localhost/something
如何让http://localhost/something
工作?
是否必须http://localhost/user/something
,我该如何做到这一点?
答案 0 :(得分:2)
您需要了解CodeIgniter的URL如何工作。
网址由一些细分组成。 http://localhost/index.php/user/something/thing
在此示例user
中,something
和thing
是网址的一部分。
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/something
与http://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)