【发布时间】:2020-07-31 06:12:10
【问题描述】:
我正在使用 Laragon 作为本地服务器在 Codeignitor 中创建一个 Web 应用程序。当我尝试“重定向”到控制器时 - 我得到“404 Page Not Found”。如果我重定向到 View - 它可以工作。我可以使用“表单打开”等其他方法访问控制器。
这是我的 .htaccess 文件:
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ index.php/$1 [L]
这是我的控制器 - 对于我使用重定向到视图“页面登录”和控制器“私人区域”的测试。我可以访问视图,但控制器发送到 404 Page Not Found。
if($this->form_validation->run()){
$result = $this->login_model->can_login($this->input->post('user_email'), $this->input->post('user_password'));
if($result == ''){
redirect('private_area');
}
else {
$this->session->set_flashdata('message', $result);
redirect('page-login');
仅供参考,我可以使用其他方法(例如 Form Open)访问控制器(在本例中为“注册”),如下所示:
<?php echo form_open('register/validation'); ?>
为什么会出现 404 错误?
【问题讨论】:
-
您对路由、控制器和视图的概念感到困惑。如果你明白这一点,它会变得更清楚。您不会重定向到控制器或视图 - 您会重定向到 routes。同样
form_open()不将控制器作为参数,而是将路由。 The intro tutorial,和the routes documentation,描述的很好。 -
您在重定向功能中提到了 private_area,而您提到了控制器名称 Private-area。两者是不同的。您应该重定向到私人区域。
-
谢谢@Don'tPanic!你搞定了。我想我解决了我的问题 - 请参阅下面的答案。干杯!
标签: php .htaccess codeigniter laragon