mod_rewrite 404错误

时间:2013-02-27 03:29:08

标签: cakephp mod-rewrite configuration http-status-code-404

我一直在查看帖子和一些Google Groups用于修复mod_rewrite以与CakePHP(以及CakePHP文档)一起使用,但我似乎无法让mod_rewrite正常工作。

CakePHP安装正常,我得到主页,我得到:enter image description here 然后我创建了一个Model app / Model / Format.php:

<?php

    /**
     * File: app/Model/Format.php
     *
     * Format Model
     */
    class Format extends AppModel
    {
        var $name = 'Format';

        // <hasMany>
        var $hasMany = array(
                                'DVD' => array('className' => 'DVD')
                            );
    }

    ?>

一个Controller app / Controller / FormatsController.php,其方法为:

function index()
    {           // Ignore Format -related- data
        $this->Format->recursive = 0;

        // Get all formats from the database that have a status of '1'
        $formats = $this->Format->find('all', array(
                                                        'conditions' => array('Format.status' => '1')
                                                    ));

        // Save the Formats in a variable for display from the View
        $this->set('formats', $formats);
    }

最后是一个View app / View / Formats / index.ctp:

<?php
    // File: app/Views/Formats/index.ctp
?>

<div class='formats index'>

    <table>
        <thead> 
            <tr>
                <th> Format Name</th>
                <th> Description </th>
                <th> Actions </th>
            </tr>
        </thead>
        <tbody>
            <?php

            ?>
        </tbody>
    </table>

</div>

我在Cakephp根目录,app root dir,webroot目录中的.htaccess文件都匹配CakePHP建议@ http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Installation.html

我还在每个.htaccess文件中添加了RewriteBase [我的app目录的路径],因为Google群组中的某个人说它适用于他们。

但是,每当我尝试加载“cakecms / Formats / index”时,我都会得到:

enter image description here

任何人对我缺少的东西都有任何想法? 我今天在一台新笔记本电脑上,这个 都在我的最后一台工作。我不得不遗漏一些东西......

2 个答案:

答案 0 :(得分:0)

如果您有网址重写问题,您通常会在默认主页上收到错误消息,但您可能不会这样做。您应该检查的网址是cakecms/formats(注意小写“f”)。 “index”部分对于索引操作是可选的。

答案 1 :(得分:0)

[解决]

终于弄明白我错过了什么。 我从未改变默认

<Directory [DocumentRoot] />
....
</Directory>
我的httpd.conf文件中的

目录。

虽然我在更具体的<Directory...>列表中允许Overrides,但我在默认的DocumentRoot中拒绝了它们。 在httpd.conf中的默认DocRoot目录中更改为AllowOverride All后,Cake / Apache URL路由工作正常。