我一直在查看帖子和一些Google Groups用于修复mod_rewrite以与CakePHP(以及CakePHP文档)一起使用,但我似乎无法让mod_rewrite正常工作。
CakePHP安装正常,我得到主页,我得到: 然后我创建了一个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”时,我都会得到:
任何人对我缺少的东西都有任何想法? 我今天在一台新笔记本电脑上,这个 都在我的最后一台工作。我不得不遗漏一些东西......
答案 0 :(得分:0)
如果您有网址重写问题,您通常会在默认主页上收到错误消息,但您可能不会这样做。您应该检查的网址是cakecms/formats
(注意小写“f”)。 “index”部分对于索引操作是可选的。
答案 1 :(得分:0)
[解决]
我终于弄明白我错过了什么。 我从未改变默认
<Directory [DocumentRoot] />
....
</Directory>
我的httpd.conf文件中的目录。
虽然我在更具体的<Directory...>
列表中允许Overrides,但我在默认的DocumentRoot中拒绝了它们。
在httpd.conf中的默认DocRoot目录中更改为AllowOverride All
后,Cake / Apache URL路由工作正常。