cakephp внутри подкаталога

У меня проблема с CakePHP, я не могу найти способ заставить CakePHP работать в подкаталоге. У меня есть веб-страница, которая находится на www.example.com и я хочу иметь приложение CakePHP на www.example.com/cake, www.example.com это виртуальный хост и cake это подкаталог, в котором хранятся все файлы тортов и каталоги. Проблема в том, что когда я иду в www.example.com/cake он запрашивает CakeController и не загружает таблицы стилей. Когда я иду в www.example.com/cake/users/register знак равно UsersController::register()) он показывает правильный сайт, но опять же без CSS.

Так что мне нужны две вещи... чтобы получить www.example.com/cake для отображения домашней страницы и загрузки загруженных таблиц стилей.

Разве вы не знаете, как этого добиться?

заранее спасибо

3 ответа

Решение

Вы прочитали эту страницу в книге и внесли соответствующие изменения в /app/webroot/index.php?

Редактировать:

Проблема в том, что когда я захожу на www.example.com/cake, он запрашивает CakeController и не загружает таблицы стилей.

Похоже, это указывает на то, что у вас неправильный.htaccess в корне вашего сайта (www, htdocs, public_html или что-то еще), так как он пытается обработать запрос в структуре CakePHP.

Это не должно выглядеть так

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

Почему бы вам не упростить себе жизнь, не поместить CakePHP в корень и не переместить страницы, которые находятся на www.example.com в приложение / webroot. Таким образом, он будет вести себя именно так, как вы хотите, то есть:

www.example.com/staticPage.html - отображает статическую страницу.

www.example.com/users - отображает индекс пользователей

Файлы в webroot обслуживаются точно так же, как если бы они были в корне сайта. Подумайте о файлах CSS и JavaScript.

Скорее всего, ваш mod_rewrite не включен в Apache на вашей учетной записи хостинга. Посоветуйтесь с вашим хозяином. Другая возможная проблема описана ниже:

Вы изменили пути в webroot / index.php?

Вам нужно настроить пути в этом файле, чтобы они указывали на папку с основными файлами Cake, основываясь на пути к каталогу вашего хостинг-провайдера.

Например,

if (!defined('CAKE_CORE_INCLUDE_PATH')) { 
    define('CAKE_CORE_INCLUDE_PATH', 'home' . DS .'w3dev' . DS . 'public_html' . DS . 'clients' . DS . 'folderName' . DS . 'remote' . DS . 'v1.1' . DS .  'cake'); 
}

А также

if (!defined('APP_DIR')) {
    define('APP_DIR', basename(dirname(dirname(__FILE__))). DS . 'v1.1' . DS . 'app'); 
}

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

Я не знаком с Cake, но это почти наверняка какая-то проблема пути. Убедитесь, что путь к таблицам стилей указан правильно.

Я знаю, что некоторые фреймворки будут использовать функцию base_url() (или что-то с таким же именем), которая возвращает значение конфигурации, вы должны проверить свою конфигурацию, чтобы убедиться, что базовый URL установлен правильно.

Другие вопросы по тегам