CodeIgniter路线:我一直得到404

时间:2009-04-03 23:34:55

标签: php codeigniter

我有一个包含以下

的application / controller / login.php文件
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'] = "";

问题是,当我尝试访问http://localhost/myapp/login时,我一直收到404。我做错了什么?我已经检查了CI路线文档,但无法发现任何内容。

3 个答案:

答案 0 :(得分:7)

这应该没有任何问题 - 没有路线会有效吗? 此外,您是否正确设置了.htaccess(即http://localhost/myapp/index.php/login正在工作)

答案 1 :(得分:2)

要记住的另一点是,如果您将“enable_query_strings”设置为true并且未使用.htaccess mod_rewrite规则:

在config / config.php中:

$config['enable_query_strings'] = TRUE;
$config['controller_trigger']   = 'c';
$config['function_trigger']     = 'm';
$config['directory_trigger']    = 'd';

正确路由您的请求的网址如下所示:

http://localhost/myapp/index.php?c=login

答案 2 :(得分:0)

如果您尚未使用index.php文件从应用中删除.htaccess,那么这就是另一个球类游戏。但你能做的就是:

设置一个不是controller文件的默认welcome,如果您希望将欢迎文件作为默认文件,请使用此链接

http://localhost/myapp/index.php/login

请记住,这种方式仅在使用index.php文件未删除.htaccess文件时才有效。

同时打开apllication/config/config.php并将此代码用于baseurl

$config['base_url'] = 'http://localhost/myapp';

应该总是这样做。