【发布时间】:2012-01-09 00:36:59
【问题描述】:
我一直在尝试在我的服务器的开发部分设置 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/
蛋糕根.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cake
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
蛋糕应用目录.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cake/app
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
蛋糕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>
【问题讨论】:
-
现在我很困惑。如果我删除每个文件中的 RewriteBase,然后添加到 URL(例如,dev.domain.com/cake/stuff),我会收到一条错误消息,指出我尚未创建该控制器,如果我创建了控制器,它似乎可以工作.那么 URL 重写是否有效,但 Cake 的检查失败了?
-
我也收到了一个错误,因为我的服务器上没有安装 PDO。解决该错误(php.ini 问题)后,URL 重写错误消失了。所以 URL 重写错误可能与 URL 重写没有任何关系,并且可能是由(看似)单独的问题引起的。
标签: apache .htaccess cakephp mod-rewrite cakephp-2.0