我做了所有设置,不使用mod_rewrite Apache 2.2和CakePHP。
Apache2启动并运行,Cake似乎也在运行。如果我去http://127.0.0.1/cake/index.php
,所有绿色标签(使用PostgreSQL 9.1)。我按照教程create the blog project进行了操作,并在/var/www/cake/app/Controller/PostsController.php
处创建了控制器文件(还有CakeController
和AppController
以及PagesController
个文件。
在模型目录中,我得到了Post.php和AppModel,正如教程所说。在View文件夹中,我创建了Posts文件夹和文件index.ctp和view.ctp。
当我输入类似http://127.0.0.1/cake/index.php?url=/posts/
的网址时,它会转到Cake主文件夹的index.php。它重定向到那里!如果我将URL更改为http://127.0.0.1/cake/index.php?url=/posts/view/1
(与教程一样)同样的事情。这张照片出了什么问题?
我的环境是Debian 6.0-6 64位。 Apache2.2(与SO一起安装),CakePHP 2.2.3和PHP 5.2.8(或更高版本)。
答案 0 :(得分:1)
您确定mod_rewrite
已开启并重写吗?
你可以发布你的.htaccess文件的内容 - 顶层目录(即htdocs)和你app/webroot
目录中的文件吗?您的顶级目录是其中包含app
和lib
的目录。
我怀疑你的RewriteRule
都错了。无论如何,如果你没有改变这些文件,它肯定是错误的。 :)您不应该更改中间 .htaccess
文件 - app
中的文件。
已经回答here,CakeBook解释了它here。但我个人使用了一些不同的设置:
/var/www/test.cake.lan/htdocs/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ /app/webroot/ [L]
RewriteRule (.*) /app/webroot/$1 [L]
</IfModule>
/var/www/test.cake.lan/htdocs/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/var/www/test.cake.lan/htdocs/app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app/webroot/index.php?url=$1 [QSA,L]
</IfModule>