CodeIgniter, руководство пользователя к версии 1.6.1


URL в CodeIgniter

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

www.your-site.com/news/article/my_article

Замечание: Вариант со строкой запроса в URL тоже может быть использован, но об этом ниже.

Сегменты URI

Сегменты в URL, соответствуют архитектуре Модель-Отображение-Контроллер и, как правило, строятся таким образом:

www.your-site.com/class/function/ID
  1. В первом сегменте описывается контроллер class к которому происходит обращение.
  2. Во втором сегменте происходит ссылка на функцию function или метод, который необходимо вызвать.
  3. В третьем и последующих сегментах описываются переменные, которые будут переданы в эту функцию.

Класс 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

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