【发布时间】:2017-06-17 04:26:21
【问题描述】:
我正在使用 CodeIgniter v3.1.3。基于“静态页面”教程,我正在尝试创建一个包含 5 个页面的静态网站,例如主页、关于、服务、投资组合和联系人。
我在 'application/controllers' 目录中有一个 Pages.php 控制器。
我的 Pages.php 控制器看起来像
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Pages extends CI_Controller {
//Controller logic
public function view($page = 'home')
{
if(!file_exists(APPPATH.'views/pages/'.$page.'.php')){
//Whoops!, we don't have a page for that
show_404(); //In-built CI function to show 404 error pages
}
$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);
}
}
我还在'application/views/pages' 中创建了 5 个静态页面,例如 home.php、about.php、services.php、portfolio.php、contact.php
页眉和页脚的常用代码存在于'application/views/templates',如footer.php & header.php。
我在 header.php 中的导航菜单看起来像
<li><a class="curr_menu" href="<?php echo base_url('pages/view/home');?>">Home</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/about');?>">About Us</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/services');?>">Services</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/portfolio');?>">Portfolio</a>
</li>
<li><a class="page-scroll" href="<?php echo base_url('pages/view/contact');?>">Contact Us</a>
</li>
我的 routes.php(application/config/routes.php) 看起来像
$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';
主页显示为初始加载,但是当我单击任何菜单项时,它会返回“404 Page Not Found”错误。
谁能解释一下 - 使用清晰的代码 - 显示以使我的菜单正常工作。 .htaccess 根目录包含
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
【问题讨论】:
-
您管理过
.htacess文件吗? -
是的,我有一个 htaccess 文件。我已经编辑了我的问题以包含我的 htaccess 文件
-
href="<?php echo base_url('index.php/pages/view/home');?>"是否有效。尝试一次 -
添加 index.php 后它可以工作,但我不想在我的 URL 中显示 index.php
-
试试下面编辑的答案。在这里完美工作。
标签: php html css codeigniter