wamp 服务器 64 上的 codeigniter 控制器出现 404 错误
getting 404 error with codeigniter's controllers on wamp server 64
我在 wampserver 上使用 codeigniter,我对模型控制器视图还很陌生,我想很好地理解它是如何工作的。
目前,我正在尝试创建一个基本的控制器:
在 /application/controllers/pages.php 我刚做了这个:
<?php
class Pages extends CI_Controller{
public function one(){
echo 'hello world';
}
}
?>
所以,是的,这是非常基本的,但是当我尝试使用 chrome 访问该方法时,我遇到了 404 错误:http://localhost/test/pages/one/
我在 Internet 上查看了一些教程,这些教程与我做的事情相同,但他们在网页中显示了 "hello world"。
我发现这可能是因为我没有在我的 URL 中输入 index.php 但我已经将我的 config.php 和我的 route.php 修改为否不再需要输入它:
config.php:
$config['base_url'] = 'http://localhost/test';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';
routes.php:
$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/view/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
最让我困扰的是,当我使用这个 codeigniter 的示例时,它运行良好并且我没有收到 404 错误:
class Pages extends CI_Controller{
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
如果我尝试创建另一个函数,它将被完全忽略。
我想我的路由文件有问题,或者 codeigniter 的安装有问题,但在这种情况下,我更喜欢在重新安装所有之前询问...
有人能解决我的问题吗?非常感谢。
更改您的路线
$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/view/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
到
$route['default_controller'] = 'pages/one';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/one/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
我在 wampserver 上使用 codeigniter,我对模型控制器视图还很陌生,我想很好地理解它是如何工作的。 目前,我正在尝试创建一个基本的控制器: 在 /application/controllers/pages.php 我刚做了这个:
<?php
class Pages extends CI_Controller{
public function one(){
echo 'hello world';
}
}
?>
所以,是的,这是非常基本的,但是当我尝试使用 chrome 访问该方法时,我遇到了 404 错误:http://localhost/test/pages/one/
我在 Internet 上查看了一些教程,这些教程与我做的事情相同,但他们在网页中显示了 "hello world"。
我发现这可能是因为我没有在我的 URL 中输入 index.php 但我已经将我的 config.php 和我的 route.php 修改为否不再需要输入它:
config.php:
$config['base_url'] = 'http://localhost/test';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';
routes.php:
$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/view/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
最让我困扰的是,当我使用这个 codeigniter 的示例时,它运行良好并且我没有收到 404 错误:
class Pages extends CI_Controller{
public function view($page = 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
如果我尝试创建另一个函数,它将被完全忽略。 我想我的路由文件有问题,或者 codeigniter 的安装有问题,但在这种情况下,我更喜欢在重新安装所有之前询问...
有人能解决我的问题吗?非常感谢。
更改您的路线
$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/view/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
到
$route['default_controller'] = 'pages/one';
$route['pages'] = 'pages/';
$route['(:any)'] = 'pages/one/';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;