2012-05-18 1 views
-1

я CakePHP установлен в localhost/domains/mydomain/ и файл .htaccess в localhost/, содержащий следующие:CakePHP в вложенной папке с неправильными путями

RewriteEngine On 
RewriteRule ^$ /domains/mydomain/app/webroot/ [L] 
RewriteRule (.*) /domains/mydomain/app/webroot/$1 [L] 

Так что мой сайт доступен по адресу localhost/. Проблема в том, что все ссылки на моем сайте указывают на localhost/domains/mydomain/. Есть ли способ, что Cake подумает, что он находится в папке localhost/, поэтому я бы избавился от уродливого domains/mydomain/ в URL-адресе?

ответ

0

Через год я нашел правильное решение. Просто поместите это в файл core или bootstrap, и все готово.

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

К сожалению, никто не мог ответить на мой вопрос, поэтому мне пришлось использовать обходной путь. Для того, чтобы, возможно, помочь другим поколениям, есть то, что я сделал:

я переместил папку WebRoot в корневой папке веб-сервера:

webhost_root(localhost) 
|- domains 
| |- mydomain 
|  |- app 
|  |- cake 
|  |- plugins 
|  |- vendors 
|-webroot 

А потом мне пришлось настроить WebRoot/index.php, чтобы посмотреть на домены/MYDOMAIN/приложение для моего торта приложения:

if (!defined('ROOT')) { 
    define('ROOT', (dirname(dirname(__FILE__))).'/domains/mydomain/'); 
} 

if (!defined('APP_DIR')) { 
    define('APP_DIR', 'app/'); 
} 

осталось только .htaccess в webhost_root:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$ 
RewriteRule ^$ webroot/ [L] 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$ 
RewriteRule (.*) webroot/$1 [L] 

Надеюсь, это поможет кому-то.

Смежные вопросы