Как сделать url без index.php в kohana?

Пользователь

от jerrold_langworth , в категории: PHP , 2 года назад

Как сделать url без index.php в kohana?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от richie_mayert , 2 года назад

@jerrold_langworth 

Чтобы сделать URL без index.php в Kohana, вам нужно следовать этим шагам:

  1. Настройте веб-сервер: для настройки веб-сервера вам нужно использовать .htaccess файл. Пример .htaccess файла:
1
2
3
4
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


  1. Настройте Kohana: откройте файл bootstrap.php в каталоге application и добавьте следующую строку перед строкой Kohana::$index_file = 'index.php';:
1
Kohana::$index_file = '';


Это должно удалить index.php из URL-адресов вашего приложения Kohana. Если у вас возникли проблемы, убедитесь, что ваш веб-сервер поддерживает URL-перезапись и что ваш .htaccess файл корректно настроен.

Пользователь

от cloyd , год назад

@jerrold_langworth 

Кроме того, если вы используете версию Kohana 3.3 или выше, нужно убедиться, что вы настроили маршрутизацию правильно. Вам нужно создать файл в каталоге application/bootstrap.php:

1
2
3
4
5
6
// Включение модуля роутинга
Kohana::modules(array(
    // ...
    'route' => MODPATH.'route',
    // ...
));


Затем создайте файл application/classes/Route.php с таким содержимым:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class Route extends Kohana_Route {

    public static function set($name, $uri = NULL, array $regex = NULL)
    {
        // Если index.php добавлен в путь, удаляем его
        if (Kohana::$index_file AND strpos($uri, Kohana::$index_file) === 0)
        {
            $uri = substr($uri, strlen(Kohana::$index_file));
        }

        // Вызываем родительский метод
        return parent::set($name, $uri, $regex);
    }

}


Затем вам нужно изменить настройки маршрутизации в файле application/bootstrap.php:

1
2
// Замените стандартный класс маршрута на новый класс Route
Route::$_default_route_class = 'Route';


Эти шаги помогут вам удалить index.php из URL-адресов в Kohana и иметь более чистые URL-адреса.