CodeIgniter URL
По умолчанию, URL в CodeIgniter предназначены для удобства поисковых систем и пользователей. Вместо стандартного подхода с «строкой запроса», характерного для динамических систем, CodeIgniter использует подход на основе сегментов:
example.com/news/article/my_article
Примечание
Строки запроса в URL могут быть необязательно включены, как описано ниже.
Сегменты URI
Сегменты в URL, в соответствии с подходом MVC, обычно представляют:
example.com/class/function/ID
- Первый сегмент представляет класс контроллера, который должен быть вызван.
- Второй сегмент представляет функцию или метод класса, который должен быть вызван.
- Третий и любые последующие сегменты представляют идентификатор и любые переменные, которые будут переданы контроллеру.
Библиотека URI и вспомогательные функции URL содержат функции, которые упрощают работу с данными URI. Кроме того, ваши URL можно переопределить с помощью функции маршрутизации URI для большей гибкости.
Удаление файла index.php
По умолчанию, файл index.php будет включён в ваши URL:
example.com/index.php/news/article/my_article
Если на вашем сервере Apache включён mod_rewrite, вы можете легко удалить этот файл, используя файл .htaccess с простыми правилами. Вот пример такого файла, использующего «отрицательный» метод, в котором всё перенаправляется, кроме указанных элементов:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
В приведённом примере любой HTTP-запрос, отличный от запросов к существующим каталогам и файлам, обрабатывается как запрос к файлу index.php.
Примечание
Эти конкретные правила могут не работать для всех конфигураций сервера.
Примечание
Убедитесь, что из вышеупомянутого правила исключены все ресурсы, которые должны быть доступны извне.
Добавление суффикса к URL
В файле config/config.php вы можете указать суффикс, который будет добавляться ко всем URL, генерируемым CodeIgniter. Например, если URL выглядит так:
example.com/index.php/products/view/shoes
Вы можете необязательно добавить суффикс, например, .html, чтобы страница выглядела определённого типа:
example.com/index.php/products/view/shoes.html
Включение строк запроса
В некоторых случаях вам может быть предпочтительнее использовать URL со строками запроса:
index.php?c=products&m=view&id=345
CodeIgniter необязательно поддерживает эту возможность, которую можно включить в файле application/config.php. Если вы откроете этот файл, вы увидите эти элементы:
$config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm';
Если вы измените «enable_query_strings» на TRUE, эта функция будет активирована. Ваши контроллеры и функции станут доступными с помощью «триггерных» слов, которые вы задали для вызова контроллеров и методов:
index.php?c=controller&m=method
Примечание
Если вы используете строки запроса, вам придётся самостоятельно создавать URL, вместо использования вспомогательных функций URL (и других вспомогательных функций, генерирующих URL, таких как некоторые вспомогательные функции для форм), так как они разработаны для работы с URL на основе сегментов.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/general/urls.html