MVC代码点火器403错误

时间:2014-02-21 09:49:59

标签: php codeigniter mod-rewrite http-status-code-403 codeigniter-routing

大家好我不熟悉MVC,在尝试 mod_rewrite 后,当我尝试加载site/about时遇到 403 问题。我的项目位于我的Web服务器htdocs的主根目录中,我很难在线理解许多教程。错误是;

Forbidden

You don't have permission to access / on this server.

Additionally, a 403 Forbidden error was encountered while 
trying to use an ErrorDocument to handle the request.

网站 - 控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Site extends CI_Controller {

public function index()
{
    $data['title']= "Welcome Learn Guitar Online";
    //$this->load->view('home',$data);
    //$this->getValues();
    $this->load->view("about",$data);

}
}

about.php

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>

</head>
<body>

<div id="container">
<h1>Welcome to about</h1>
<div id="body">
    <p>hello</p>
</div>

<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
</div>

</body>
</html>

的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Removes index.php from ExpressionEngine URLs
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/system/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

    # Directs all EE web requests through the site index file
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

配置文件变量

$config['base_url'] = 'localhost/index.php';
$config['index_page'] = '';

2 个答案:

答案 0 :(得分:1)

您尝试加载site/about。但是当我看到你的代码时,没有名为about的函数。您只需致电您的控制器即http://localhost/FOLDER_NAME/site,默认情况下会调用index功能并加载about.php视图。

您的config.php应该喜欢这个

$config['base_url'] = 'http://localhost/FOLDER_NAME';
$config['index_page'] = '';

如果您将ht.access放在项目文件夹中,则也不需要定义base_url()

答案 1 :(得分:0)

您可以尝试将.htaccess设为此

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /FOLDER_NAME/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>
Config

中的

$config['base_url'] = 'http://localhost/FOLDER_NAME';
$config['index_page'] = '';

将FOLDER_NAME替换为您的文件夹名称。现在你应该能够访问没有index.php的网址