CodeIgniter 正确设置路由
Posted
技术标签:
【中文标题】CodeIgniter 正确设置路由【英文标题】:CodeIgniter setting up routing properly 【发布时间】:2016-06-18 12:54:51 【问题描述】:我正在尝试设置我的 codeigniter 路由来为管理面板制作身份验证表单,但路由不起作用。我是 CodeIgniter 的初学者,我想我遗漏了一些东西。
在我的服务器中,我将 CodeIgniter 文件放在我根目录的文件夹中,因此可以像这样访问它:
/localhost/ci
在我的 config.php 中,我设置了我的基本 url 并删除了索引页面以删除 index.php:
$config['base_url'] = 'http://localhost/ci/';
$config['index_page'] = '';
我还编辑了 .htaccess 以删除 index.php,就像 CodeIgniter 文档说的那样,所以它看起来像这样:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
现在,我的路线配置文件如下所示。我设置了默认页面和到我的 Auth 控制器的路由:
$route['default_controller'] = 'auth';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['auth/login'] = "auth/login";
这是我的控制器:
类 Auth 扩展 CI_Controller
function __construct()
parent::__construct();
// load libraries
function index()
if (! $this->ion_auth->logged_in())
// redirect them to the dashboard page
redirect(base_url('auth/login'), 'refresh');
else
// show the dashboard page
redirect(base_url('dashboard'), 'refresh');
function login()
$this->load->view('login');
当我进入网络浏览器 http://localhost/ci/ 时,它会将我重定向到 http://localhost/ci/auth/login,但随后会出现 404 Not Found 错误。我错过了什么?我现在有点困惑,谢谢。
【问题讨论】:
views 文件夹中有 login.php 页面吗? 我目前在 html 文件中有我的视图,所以它看起来像“login.html”。这不正确吗? 可能就是这个问题。试试 $this->load->view('login.html');或将您的 html 文件转换为 php 文件 我刚试过这个,我也收到了 404 错误.. 为什么不是它的public
函数? function login()
【参考方案1】:
尝试更改您的 .htaccess 从:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
到
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /ci/index.php/$1 [L]
【讨论】:
这工作正常,非常感谢!我也在修改我的应用程序文件夹上的 .htaccess 。现在我在我的 codeigniter 根目录中创建了一个 .htaccess 文件,它现在可以工作了。以上是关于CodeIgniter 正确设置路由的主要内容,如果未能解决你的问题,请参考以下文章
为啥/在找到页面时 CodeIgniter 在哪里设置 404 http 状态?