【发布时间】:2014-08-28 22:09:15
【问题描述】:
我在 CentOS 上安装 CakePHP 2.4.3 时遇到问题(在 2.5.2 上也试过,同样的问题)。可以从 cakephp 访问(读/写)数据库。
过去几个小时尝试修复它,但这是我卡住的地方:
1) 此错误不断出现。 “您的服务器上未正确配置 URL 重写” - 我有检查,该文件可从网站“www.mysite.com/cake/app/webroot/css/cake.generic.css”访问 - 我已更新 httpd.conf 以具有“LoadModule rewrite_module modules/mod_rewrite.so” - 文件“.htaccess”位于 3 个文件夹中:
/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
2) 我的控制器不能直接调用。它需要有“index.php”。
例子:
Works on : "www.mysite.com/cake/index.php/grabs/myFunction"
Unable to work on : "www.mysite.com/cake/grabs/myFunction"
请指教。
【问题讨论】:
-
为了让
mod_rewrite工作 Apache 的AllowOverride指令必须设置为All用于cake 的目录,是吗? -
是的,'allowOverride' 就在那里。我在上面的问题中添加了 httpd.conf 部分。谢谢。
-
这听起来很傻,但是您是否重新启动了 Web 服务器?