我开始在http://ellislab.com/codeigniter%20/user-guide/tutorial/static_pages.html上尝试第一个教程示例。
我总是遇到Page Not Found问题! 我已经阅读了很多关于解决问题的文章。但是我在不同的论坛上尝试解决方案的频率并不重要,它不起作用!
有人可以告诉我我的错误在哪里吗?
所以这些是我试过的文件:
我的routes.php在application / config
$route['default_controller'] = "pages/view";
$route['404_override'] = '';
$route['(:any)'] = 'pages/view/$1';
我在应用程序/控制器中的pages.php
<?php
class Pages extends CI_Controller{
public function view($page = "home")
{
if ( ! file_exists('application/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);
}
}
我的home.php和about.php在 application / views / pages / 上 header.php和footer.php在 application / views / templates /
上非常感谢!
答案 0 :(得分:0)
将文件存在或不存在条件,它将起作用,因为您检查的不是文件,而只是要路由到的URL。所以很明显,它总会返回假,这将导致你的工作失败。
答案 1 :(得分:0)
在 application / config / routes.php
中尝试更改
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
要强>
$route['default_controller'] = 'pages/views';
$route['404_override'] = '';
希望它有效。虽然为我工作。
答案 2 :(得分:0)
尝试将 /application/config/routes.php 中的代码更改为:
$route['default_controller'] = "pages/view";
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
CodeIgniter逐行读取代码,因此选择在您创建的页面之前显示404页面。
答案 3 :(得分:0)
请务必严格遵守指示。我遇到了同样的问题并寻找解决方案。只有在阅读了其中一些答案后,才意识到我没有在templates
目录中创建pages
或views
子目录。当你到达static pages教程的末尾时,你应该有如下结构:
/views/
/templates/
header.php
footer.php
/pages/
about.php
home.php
答案 4 :(得分:0)
首先运行此
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
然后试试这个
$route['default_controller'] = "pages/view";
$route['404_override'] = '';
我有同样的问题,但没有解决。
答案 5 :(得分:0)
在项目的根目录中创建一个.htaccess文件,并添加以下代码
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]