Проблема в Kohana 2.3.4 (2.4) с маршрутизацией и контроллером 'Index'
Вопрос
У меня есть: новая чистая копия Kohana 2.3.4 (также пробовал 2.4 RC1), контроллер с именем 'index' на Debian с Apache 2.2.9. Р>
Когда я набираю адрес, например, http: // localhost / kohana / index / index , я ожидаю, что контроллер «index», действие «index» для выполнения. Работает на локальном хосте Windows, работает на виртуальном хостинге. Но не на моем сервере Debian. Р>
Я отладил и обнаружил, что $ _SERVER ['PATH_INFO'] неверен. Он пропускает первый «индекс» в URI, поэтому я могу перейти к «index / index», перейдя в «index / index / index». Вот что я хочу исправить.
Кто-нибудь знает, как это можно решить?
Решение 2
Оказалось, что это mod_negotitaion. Это чертовски мод переписывает мой / index / index в /index.php/index, потому что он думал, что я пропустил .php
Так что любой, кто сталкивается с этой проблемой, просто отключите mod_negotiation и хорошо проведите время
Другие советы
Я предполагаю, что это на самом деле происходит в вашем файле .htaccess или в конфигурации Apache, а не в Kohana. Прежде всего, убедитесь, что файл example.htaccess, поставляемый с Kohana, переименован в .htaccess, и вам может потребоваться перезапустить Apache.
Если вы используете .htaccess, чтобы скрыть часть пути index.php, проверьте, какой параметр RewriteBase:
RewriteBase /kohana/
Если вы установили его в корневом каталоге вашего веб-сервера (как в производственном режиме, или используете отдельный порт для localhost), то его следует изменить на:
RewriteBase /
Кстати, это моя личная самая распространенная ошибка при создании новых сайтов и сред разработки. Это также верно для CodeIgniter и других связанных PHP-фреймворков. Р>
Есть ли у вашего Apache, установленного на сервере Debian, mod_rewrite? Было бы хорошо, чтобы подтвердить это. Вот один из способов сделать это .
Дальнейшая диагностика, чтобы увидеть, является ли это ошибкой Коханы или Апача, включает добавление обратно в часть index.php пути. В вашем случае попробуйте http: //localhost/kohana/index.php/index . Наконец, я должен согласиться с тем, что sarfraz назвал ваш контроллер " index " просто просит о неприятностях. Мое собственное соглашение - называть это «домом». и соответственно изменить маршрут по умолчанию.