我相信我已经完成了在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个小时,我需要帮助知道它的人。 我错过了什么?任何帮助深表感谢。
答案 0 :(得分:0)
在Codeigniter中,路由由3部分组成:
因此,如果您的项目的根目录为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中不起作用。