我一直在尝试在我的服务器的开发部分设置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>
答案 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;
}
...只要重写似乎在所有其他方面都有效。