Как заставить работать маршруты с 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.