Php CodeIgniter路线:我一直得到404
我有一个application/controller/login.php文件,其中包含以下内容Php CodeIgniter路线:我一直得到404,php,codeigniter,Php,Codeigniter,我有一个application/controller/login.php文件,其中包含以下内容 class Login extends Controller { function Login() { parent::Controller(); } function index() { $this->mysmarty->assign('title', 'Login'); $this->mysmarty->assign('s
class Login extends Controller {
function Login()
{
parent::Controller();
}
function index()
{
$this->mysmarty->assign('title', 'Login');
$this->mysmarty->assign('site_media', $this->config->item('site_media'));
$this->mysmarty->display('smarty.tpl');
}
}
我的路线定义如下所示:
$route['default_controller'] = "welcome";
$route['login'] = 'login';
$route['scaffolding_trigger'] = "";
问题是,当我尝试访问时,我总是得到一个404。我做错了什么?我已经检查了CI routes文档,无法发现任何东西。这应该不会有任何问题-没有路由它可以工作吗?
另外,您是否正确设置了.htaccess(即,它确实起作用)如果您已将“enable\u query\u strings”设置为true且未使用.htaccess mod\u重写规则,则需要记住另一点: 在config/config.php中:
$config['enable_query_strings'] = TRUE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
正确路由请求的URL如下所示:
http://localhost/myapp/index.php?c=login
如果你没有使用
.htaccess
文件从你的应用程序中删除你的index.php
,那么这本身就是另一场球赛。但你能做的是:
设置一个默认的控制器
,该控制器不是欢迎
文件,如果您希望欢迎文件成为您的默认控制器,请以这种方式使用链接
http://localhost/myapp/index.php/login
请记住,只有在未使用.htaccess
文件删除index.php
文件时,这种方法才有效
同时打开aplication/config/config.php
,并将此代码用于baseurl
$config['base_url'] = 'http://localhost/myapp';
这应该一直都能奏效。谢谢你这么做。但是为什么默认的_控制器不需要index.php呢?默认情况下,如果您转到web服务器上的某个文件夹,Apache会查找index.html、index.php、main.php等,因此相当于。首先,您需要告诉我们您使用了哪个CI版本?由于CI版本(3.x),控制器类名和文件名的首字母必须大写,因此可能会出现大写问题,但如果您的CI版本为3.x。