CodeIgniter 2 - 仅在用户通过身份验证时显示 404 页面
CodeIgniter 2 - Display 404 Page Only When User is Authenicated
我有一个 CodeIgniter 2 应用程序,目前 returns 每当用户请求无效 URL 时都会出现 404 页面。在我的 MY_controller.php 文件中,我有一个检查用户是否通过身份验证的函数。如果用户请求的 URL 有效且用户未登录,则他们将被重定向到登录页面。如果他们请求的 URL 无效,无论他们是否登录,他们都会看到 404 页面。
如果用户未登录,即使用户请求无效 URL,是否仍然可以将用户重定向到登录页面?
有可能。步骤如下
使用以下代码在您的控制器目录中创建一个名为 Errors
的新控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Errors extends CI_Controller {
public function index() {
redirect('authentication/login');
}
}
现在在您的 config/routes.php
文件中 $route['404_override']
更改如下
$route['404_override'] = 'errors/index';
现在您将在错误 URL 时被重定向,而不是显示 404 错误页面
如果您希望登录用户将看到 404 错误但未登录用户将看到登录页面,然后将 Errors
控制器中的 index
方法更改为
public function index() {
if($this->session->userdata('user_id')){// check any session item
show_404();
}
redirect('authentication/login');
}
我有一个 CodeIgniter 2 应用程序,目前 returns 每当用户请求无效 URL 时都会出现 404 页面。在我的 MY_controller.php 文件中,我有一个检查用户是否通过身份验证的函数。如果用户请求的 URL 有效且用户未登录,则他们将被重定向到登录页面。如果他们请求的 URL 无效,无论他们是否登录,他们都会看到 404 页面。
如果用户未登录,即使用户请求无效 URL,是否仍然可以将用户重定向到登录页面?
有可能。步骤如下
使用以下代码在您的控制器目录中创建一个名为
Errors
的新控制器defined('BASEPATH') OR exit('No direct script access allowed'); class Errors extends CI_Controller { public function index() { redirect('authentication/login'); } }
现在在您的
config/routes.php
文件中$route['404_override']
更改如下$route['404_override'] = 'errors/index';
现在您将在错误 URL 时被重定向,而不是显示 404 错误页面
如果您希望登录用户将看到 404 错误但未登录用户将看到登录页面,然后将
Errors
控制器中的index
方法更改为public function index() { if($this->session->userdata('user_id')){// check any session item show_404(); } redirect('authentication/login'); }