路由不起作用codeigniter
Posted
技术标签:
【中文标题】路由不起作用codeigniter【英文标题】:Routes not working codeigniter 【发布时间】:2018-06-27 05:55:35 【问题描述】:当我将 Welcome 设置为默认控制器时,路由不工作并且默认控制器显示错误 404,然后使用 Welcome 控制器定义的所有路由都可以正常工作,但我的其他路由和 url 不工作。
$route['default_controller'] = "welcome";
$route['testRoute'] = 'welcome/test';
$route['testRoute/(:num)'] = 'welcome/test/$i';
以上所有路由都只适用于欢迎控制器。
$route['default_controller'] = "login";
$route['loginMe'] = 'login/loginMe';
$route['logout'] = 'user/logout';
显示所有控制器和功能的错误 404。
【问题讨论】:
可能是很多事情...您的登录名和用户控制器文件的第一个字母是大写的。如果你展示这些可能会有所帮助。 所有命名空间都是正确的。在本地主机上一切正常,但在实时服务器上,除了欢迎控制器显示错误 404。 什么是实时服务器 URL ?? missionriev.in/admin 所以你的登录控制器被命名为 Login.php,你的用户控制器被命名为 User.php。那么您的本地开发服务器在什么系统上运行? 【参考方案1】:如果你将 index.php 放在域之后,这将起作用。
http://www.example.com/index.php/login/
您应该通过替换 config 和 .htaccess 从 url 中删除 index.php
在 config.php 中替换
$config['index_page'] = 'index.php';
由
$config['index_page'] = '';
.htaccess
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$0 [L]
【讨论】:
【参考方案2】:这对我有用:
-
在config文件夹的config.php中,使用:
$config['enable_query_strings'] = FALSE;
使用$config['uri_protocol'] = 'AUTO';
Use $config['index_page'] = '';
还记得设置您的基本网址。我的是:$config['base_url'] = 'http://localhost/code';
最后使用下面的htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /code/index.php/$1 [L]
</IfModule>
注意:记得在 htaccess 文件中编辑 index.php 的路径。希望这对你有用
【讨论】:
+1 用于 Htaccess 规则。当我将代码移动到实时服务器时,我的 htaccess 没有移动,我陷入了404
的问题。感谢您的帮助以上是关于路由不起作用codeigniter的主要内容,如果未能解决你的问题,请参考以下文章