Spec-Zone.ru › CodeIgniter 4

CodeIgniter URL

По умолчанию URL в CodeIgniter предназначены для удобства поисковых систем и пользователей. Вместо стандартного подхода к URL с использованием «строки запроса», характерного для динамических систем, CodeIgniter использует подход на основе сегментов:

example.com/news/article/my_article

Сегменты URI

Сегменты в URL, в соответствии с подходом MVC, обычно представляют:

example.com/class/method/ID
  1. Первый сегмент представляет собой класс контроллера, который должен быть вызван.
  2. Второй сегмент представляет собой метод класса, который должен быть вызван.
  3. Третий и последующие сегменты представляют идентификатор и любые переменные, которые будут переданы контроллеру.

Библиотека URI и помощник URL содержат функции, которые упрощают работу с данными URI. Кроме того, ваши URL можно перенастроить, используя функцию маршрутизации URI для большей гибкости.

Удаление файла index.php

По умолчанию файл index.php будет включён в ваши URL:

example.com/index.php/news/article/my_article

Если ваш сервер поддерживает перенаправление URL, вы можете легко удалить этот файл с помощью перенаправления URL. Это обрабатывается по-разному на разных серверах, но мы покажем примеры для двух наиболее распространённых веб-серверов.

Веб-сервер Apache

Для Apache необходимо включить расширение mod_rewrite. Если оно включено, вы можете использовать файл .htaccess с простыми правилами. Вот пример такого файла, использующего метод «отрицания», в котором всё перенаправляется, кроме указанных элементов:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

В этом примере любой HTTP-запрос, кроме запросов к существующим каталогам и файлам, обрабатывается как запрос к вашему файлу index.php.

Примечание

Эти конкретные правила могут не работать для всех конфигураций сервера.

Примечание

Убедитесь, что из вышеуказанных правил исключены любые ресурсы, которые должны быть доступны извне.

NGINX

В NGINX вы можете определить блок location и использовать директиву try_files для достижения того же эффекта, что и в конфигурации Apache:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Сначала будет произведён поиск файла или каталога, соответствующего URI (путь к каждому файлу будет построен на основе настроек директивы root и alias), а затем запрос будет перенаправлен на файл index.php вместе со всеми аргументами.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/general/urls.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API