Как запустить приложение CakePHP из подкаталога - PullRequest
0 голосов
/ 24 мая 2010

Используя CakePHP 1.3, у меня есть следующий макет:

/srv/www/_cakephp13/
    /app/
    /cake/
    /plugins/
    /vendors/
    etc...

/srv/www/htdocs/  
    /cake_app/
    /other-dir/

... где htdocs - публичный каталог, и я переместил webroot моего приложения на cake_app выше... Который, кажется, почти работает.(После настройки index.php webroot).

Когда я получаю доступ к http://devserver/cake_app/, я могу видеть контроллер / представление «Домашней страницы» по умолчанию (который я настроил, поэтому , что , кажется, работает).

Но когда я получаю доступ к http://devserver/cake_app/controller/view Я получаю 404 ошибок.

Можно ли запустить Cake App в подкаталоге корня сайта?Как я могу заставить это работать?

В идеале , я не хочу редактировать настройки Apache conf ... Если я могу это исправить с помощью конфигурации Cake или файлов htaccess, я буду намного счастливее.

Ответы [ 2 ]

2 голосов
/ 24 мая 2010

Вы должны убедиться, что .htaccess запущен и модуль перезаписи включен и работает.

1 голос
/ 24 мая 2010

Вам нужно будет включить mod_rewrite на Apache.Чтобы проверить, включен ли он, создайте страницу, которая просто делает это:

echo phpinfo():

Grep на тексте «загруженные модули».Убедитесь, что там указан mod_rewrite.Если это не так, вы можете либо добавить его в конфигурацию Apache, либо вам может потребоваться установить его (в зависимости от вашего первоначального метода установки и от того, включили ли вы этот модуль).

Если вы не можете запустить mod_rewrite,Вы все еще можете использовать торт без него (URL будет выглядеть как index.php / controller / action / etc).Проверьте http://book.cakephp.org/view/333/A-Note-on-mod_rewrite для получения дополнительной информации.В частности,

Если вы не хотите или не можете запустить и запустить mod_rewrite (или какой-либо другой совместимый модуль) на своем сервере, вам нужно использовать встроенные в Cake красивые URL-адреса.В /app/config/core.php раскомментируйте строку, которая выглядит следующим образом:

Configure :: write ('App.baseUrl', env ('SCRIPT_NAME'));

...