Как заставить работать маршруты с CakePHP в подкаталоге

У меня есть небольшая веб-страница с небольшим веб-приложением CakePHP. Материал CakePHP находится в подкаталоге, и поэтому я получил свой.htaccess вот так:

<IfModule mod_rewrite.c> 
  RewriteEngine on 
  RewriteRule ^test/subdirectory$ subdirectory/app/webroot
  RewriteRule ^test/subdirectory/(.*)$ subdirectory/app/webroot/$1
</IfModule>

Теперь переход на domain.com/subdirectory работает, но для моего маршрута входа в систему я получаю только 404 =(

 Router::connect( '/login', array('controller' => 'users', 'action' => 'login'));

Не могли бы вы мне помочь?

// edit: я только что попробовал немного, другие мои маршруты, такие как domain.com/controller/action/id, тоже не работают.

1 ответ

Решение

Измените уровень отладки на "2". На этом уровне отладки Cake сообщит вам о том, что вы на самом деле упускаете, вместо того, чтобы дать вам 404. Для плохих правил перезаписи, он, вероятно, скажет вам, что вам не хватает контроллера, а затем сообщит вам, какой путь он использовал, когда он пытался найти ваш контроллер. С помощью этой информации вы сможете исправить ошибки переписывания.

Cake совершенно счастлив работать в подкаталоге, поэтому самым простым вариантом может быть просто переместить ваш Cake в /test/subdir.

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