Проблема в Kohana 2.3.4 (2.4) с маршрутизацией и контроллером 'Index'

StackOverflow https://stackoverflow.com/questions/1800315

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top