自定义路由不在codeigniter中工作

时间:2017-09-18 11:24:42

标签: codeigniter codeigniter-3

我相信我已经完成了在codeigniter中设置自定义路由的所有重要事项,但我仍然不知道为什么我总是会收到404错误。

我可以访问的当前网址是:http://localhost:8080/project/api/profile_test/

我想将其重写为:http://localhost:8080/project/api/users/

我已在route.php中添加了此代码,但仍无效:$route[‘users’] = 'profile_test';

我的.htaccess是:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php?$1 [L]

我已设置AllowOverride All并删除index.php中的$config['index_page'] = '';。但仍然没有工作。

我用这个小东西差不多花了8个小时,我需要帮助知道它的人。 我错过了什么?任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

在Codeigniter中,路由由3部分组成:

  • 网址
  • 控制器名称
  • 方法名称

The docs explain it well

因此,如果您的项目的根目录为http://localhost:8080/,则对于project/api/users/这样的网址,由名为application/controllers/的控制器(位于Profile_test中)处理和一个名为index的方法,你需要一个像:

这样的路线
$route['/project/api/users'] = 'profile_test/index';

请注意,控制器文件和类必须大写as described in the docs,例如controllers/Profile_test.php

如果您的项目的根目录是http://localhost:8080/project,则可以将其更改为:

$route['/api/users'] = 'profile_test/index';

如果您的控制器位于application/controllers/api/这样的子目录中,您可以将其更改为:

$route['/project/api/users'] = 'api/profile_test/index';

还要确保使用正常的单引号。您在问题中包含的部分代码包括' smart'引号:$route[‘users’]在PHP中不起作用。