Проблема в Kohana 2.3.4 (2.4) с маршрутизацией и контроллером 'Index' - PullRequest
0 голосов
/ 26 ноября 2009

У меня есть: новая чистая копия 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 ]

0 голосов
/ 06 декабря 2009

Оказалось, что это mod_negotitaion. Это чертов мод, переписывает мой / index / index в /index.php/index, потому что он думал, что я пропустил .php

Так что любой, кто столкнется с этой проблемой, просто отключит mod_negotiation и хорошо проведет время

0 голосов
/ 03 декабря 2009

Я предполагаю, что это на самом деле происходит в вашем файле .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» просто напрашивается на неприятности. Мое собственное соглашение - называть его «домом» и соответственно редактировать маршрут по умолчанию.

...