【问题标题】:CakePHP in nested folder with wrong routes嵌套文件夹中的 CakePHP 路径错误
【发布时间】:2012-05-26 04:35:17
【问题描述】:
我在localhost/domains/mydomain/ 中安装了 cakePHP,在localhost/ 中安装了 .htaccess 文件,其中包含以下内容:
RewriteEngine On
RewriteRule ^$ /domains/mydomain/app/webroot/ [L]
RewriteRule (.*) /domains/mydomain/app/webroot/$1 [L]
所以我的网站可以通过localhost/ 地址访问。问题是我网站上的所有链接都指向localhost/domains/mydomain/。有没有办法让 Cake 认为它在 localhost/ 文件夹中,这样我就可以摆脱 URL 中丑陋的 domains/mydomain/ 了?
【问题讨论】:
标签:
cakephp
url-rewriting
routes
【解决方案1】:
不幸的是,没有人能回答我的问题,所以我不得不使用解决方法。为了帮助其他几代人,我做了以下事情:
我将我的 webroot 文件夹移动到 webserver 的根文件夹:
webhost_root(localhost)
|- domains
| |- mydomain
| |- app
| |- cake
| |- plugins
| |- vendors
|-webroot
然后我不得不调整 webroot/index.php 以查看我的蛋糕应用程序的域/mydomain/app:
if (!defined('ROOT')) {
define('ROOT', (dirname(dirname(__FILE__))).'/domains/mydomain/');
}
if (!defined('APP_DIR')) {
define('APP_DIR', 'app/');
}
只剩下 webhost_root 中的 .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$
RewriteRule ^$ webroot/ [L]
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$
RewriteRule (.*) webroot/$1 [L]
希望对某人有所帮助。
【解决方案2】:
一年后,我找到了正确的解决方案。只需将其放入核心或引导文件中即可完成。
Configure::write('App', array('base' => ''));