php - wamp server 64 上的 codeigniter 控制器出现 404 错误
问题描述
我在 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/
我在互联网上查看了几个与我做同样事情的教程,但他们在他们的网页中获得了“hello world”。
我发现这可能是因为我没有在我的 URL 中输入 index.php,但我已经修改了我的 config.php 和我的 route.php 以不再需要输入它:
配置.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'] = '';
路线.php:
$route['default_controller'] = 'pages/view';
$route['pages'] = 'pages/$1';
$route['(:any)'] = 'pages/view/$1';
$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/$1';
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
至
$route['default_controller'] = 'pages/one';
$route['pages'] = 'pages/$1';
$route['(:any)'] = 'pages/one/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
推荐阅读
- flutter - 有没有办法在 Flutter 的应用栏操作按钮后面添加阴影?
- javascript - React Router 在单独的页面上渲染组件
- azure-cosmosdb - 对 cosmosDB 中的唯一键约束强制执行不区分大小写的值?
- c++ - 在 C++ 中使用 getline 从文件中读取
- java - 如何在 Java 中检测和防止内存泄漏
- python - 如何检查用户是否存在并据此在 DRF 中添加或更新数据库?
- javascript - WooCommerce:根据选择的运输方式显示或隐藏结帐字段和部分
- amazon-cloudformation - AWS cdk 打印依赖图
- php - 我将如何添加第二个用户来登录这个 php 文件?
- ios - 如何为纵向 iPhone 设置 TabView 并为其他所有内容设置侧边栏