CakePHP 2.0.4“您的服务器上未正确配置URL重写”

时间:2011-11-29 17:03:31

标签: apache .htaccess cakephp mod-rewrite cakephp-2.0

我一直在尝试在我的服务器的开发部分设置CakePHP,我似乎无法解决“在服务器上未正确配置URL重写”错误。我怀疑我没有使用正确的RewriteBase配置.htaccess文件。我已经为每个文件尝试了各种不同的RewriteBase,但我似乎无法找到正确的文件,并且Cake不会给我任何除“不工作”之外的信息(URL重写错误不会结束在Cake的错误日志中。)

我无法访问我的httpd.conf文件,但我已经将.htaccess和mod_rewrite与其他框架(Wordpress和CodeIgniter)一起使用,没有问题。

该网站的基本网址为:http://dev.domain.com/cake/

我的基本服务器路径是:/ home / username / public_html / dev / cake /

Cake root .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cake
    RewriteRule    ^$ app/webroot/    [L]
    RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

Cake app目录.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /cake/app
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

Cake webroot目录.htaccess:

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

4 个答案:

答案 0 :(得分:6)

您是否创建了新的default.ctp布局文件,然后“在服务器上未正确配置URL重写”。出现?

如果是这样的话,那就发生在我身上了。它运作得很好。我认为Cake在这里抛出了错误的错误信息。

答案 1 :(得分:5)

问题在于CSS。 如果你没有在蛋糕的默认布局上制作页面,并且在你的新布局中你没有默认的css:cake.generic.css它将在页面home.ctp上显示此错误。查看home.ctp(View / Pages)的代码并查看id="url-rewriting-warning" <p> {error}消息在cake.generic.css值为display:none时的{{1}}。

答案 2 :(得分:0)

你的vhost.conf是什么样的?如果DocumentRoot中有正确的路径,则根本不需要在.htaccess中指定RewriteBase。坚持使用默认值。

在vhost中尝试DocumentRoot /home/username/public_html/dev/cake/app,然后从.htaccess中删除RewriteBases

答案 3 :(得分:0)

对我来说问题是另一个答案中提到的css问题。

如果您更改了默认布局中的css文件,则可能需要添加以下行 到你的新css文件:

#url-rewriting-warning {
    display:none;
}

...只要重写似乎在所有其他方面都有效。