CakePHP在嵌套文件夹中的路径错误

时间:2012-05-18 15:23:24

标签: cakephp url-rewriting routes

我在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/

2 个答案:

答案 0 :(得分:0)

不幸的是,没有人能回答我的问题所以我不得不使用解决方法。为了帮助其他几代人,我做了以下事情:

我将我的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]

希望它有所帮助。

答案 1 :(得分:0)

一年后,我找到了正确的解决方案。只需将其放入核心或引导文件中即可完成。

Configure::write('App', array('base' => ''));