В прошлый раз я обрисовал схему построения URL в движке Kohana и вскользь упомянул, что можно убрать фронт-контроллер index.php из URL.
По предложению Nayjest я решил заострить внимание на этом вопросе. Сегодня мы будем превращать URL вида
- http://localhost/kohana/index.php/hello/index
в
- http://localhost/kohana/hello/index
Задача и правда не настолько тривиальная, как кажется, и делится на две подзадачи:
1. Сделать, чтобы URL без index.php был работоспособным
2. Сделать так, чтобы функции Kohanа генерировали внутренние ссылки без index.php
Первая задача традиционно решается с помощью Rewrite. В инсталляции Kohana лежит файл example.htaccess. Достаточно просто переименовать его в /.htaccess, перенести в корень инсталляции Kohana. Ну и ещё пожалуй следует исправить переменную RewriteBase и указать там путь инсталляции
1 2 | # Installation directory RewriteBase /kohana |
Вторая задача по-разному решается в Kohana2 и Kohana3 с помощью изменения настроек.
Для Kohana2 это файл application/config/config.php, в котором нужно изменить настройку $config['index_page']
1 2 | //$config['index_page'] = 'index.php'; $config['index_page'] = ''; |
Для Kohana3 это application/bootstrap.php, в котором нужно поменять параметры вызова Kohana::init
1 2 | //Kohana::init(array('base_url' => '/kohana')); Kohana::init(array('base_url' => '/kohana','index_file' =>'')); |
Вот вроде и всё. =)
Посты по теме:
RSS-подписка
Примеры в Kohana2 и Kohana3 рядом очень наглядны. И что печально, в Kohana3 явная тенденция к “много букв” в написании простых вещей
@ Nayjest, web-superman:
Поглядим что дальше будет. Может эти буквы окажутся нелишними
По-моему как раз все тривиально……:)
Ошибка в предложении “Достаточно просто переименовать его в /htaccess”. Вместо слеша точка нужна. Конечно мелочь, но все же
@ Дмитрий:
Спасибо. Исправился