URL в CodeIgniter
По умолчанию адреса в CodeIgniter являются дружественными для поисковых систем и понятны для человека. CodeIgniter использует подход, основанный на сегментах адреса:
www.your-site.com/news/article/my_article
Замечание: Вариант со строкой запроса в URL тоже может быть использован, но об этом ниже.
Сегменты URI
Сегменты в URL, соответствуют архитектуре Модель-Отображение-Контроллер и, как правило, строятся таким образом:
www.your-site.com/class/function/ID
- В первом сегменте описывается контроллер class к которому происходит обращение.
- Во втором сегменте происходит ссылка на функцию function или метод, который необходимо вызвать.
- В третьем и последующих сегментах описываются переменные, которые будут переданы в эту функцию.
Класс URI и URL хелпер содержат функции, которые упростят вашу работу с информацией в URI. Кроме того все адреса можно переопределять при помощи Роутинга, это поможет сделать приложение гибким.
Удаление сегмента «index.php»
По умолчанию, index.php будет подключаться URL:
www.your-site.com/index.php/news/article/my_article
Вы можете легко удалить этот файл из запроса при помощи простого запроса в файле .htaccess. Вот пример файла с использованием «негативного» метода, в котором будут перенаправлены все запросы, кроме указанных:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
В приведенном выше примере, любой запрос HTTP, помимо запросов к index.php, изображениям и robots.txt, трактуется как запрос для вашего файла index.php.
Добавление суффикса к URL
В файле config/config.php вы можете указать суффикс, который будет добавляться ко всем адресам, созданным CodeIgniter. Например, если URL такой:
www.your-site.com/index.php/products/view/shoes
Вы можете добавить произвольный суффикс, например .html, сделав все страницы похожими на:
www.your-site.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
Пожалуйста заметьте: Если вы используете режим со строкой запроса, то вам придется вручную указывать адреса в ссылках, т.к. стандартные хелперы работают только с сегментным режимом.