URL при работе с CodeIgniter
- Автор mityok on февраля 17th, 2008
URL в CodeIgniter по умолчанию сделаны понятными и дружественными к поисковым машинам (SEF URL - Search Engine Friendly URL). Вместо стандартного для динамических сайтов подхода с использованием "строки запроса", CodeIgniter использует подход, основанный на сегментах:
somesite.com/news/article/my_article
Примечание: использование строки запроса можно по желанию включить, см. описание ниже.
Сегменты URL
Сегменты в URL, в соответствии с MVC-шаблоном, обычно используются следующим образом:
somesite.com/class/function/ID
- Первый сегмент обозначает класс контроллера который должен быть вызван.
- Второй сегмент обозначает функцию (метод) класса контроллера, которая должна быть вызвана.
- Третий, и любые последующие сегменты обозначают параметры, которые должны быть переданы контроллеру.
_Класс URI_ и вспомогательные функции URL содержат средства для работы с URI. Кроме того, вы можете переназначить URL используя _Маршрутизацию URI_, что обеспечивает гибкость приложения.
Убираем index.php из URL
По умолчанию index.php будет присутствовать в URL используемых на сайте:
somesite.com/index.php/news/article/my_article
Вы можете легко убрать его из URL используя файл .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. К примеру, если оригинальный адрес страницы
somesite.com/index.php/products/view/shoes
вы можете по желанию добавить суффикс, например, .html, чтобы адрес страницы выглядел так:
somesite.com/index.php/products/view/shoes.html
Включение использования строки запроса
В некоторых случаях вы можете захотеть использовать URL со строкой запроса вида:
index.php?c=products&m=view&id=345
CodeIgniter опционально поддерживает эту возможность, включить ее можно в файле config/config.php. Если вы откроете свой файл конфигурации то вы можете увидеть следующие строки:
$config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm';
Если вы установите значение "enable_query_strings" в TRUE, эта возможность будет включена. Ваши контроллеры и их методы станут доступны через параметры "trigger":
index.php?c=controller&m=method
Примечание: если вы используете строку запроса, вам придется самостоятельно генерировать URL вместо использования вспомогательных функций URL (а также ряда других в спомогатлеьных функций, например, форм), которые сделаны для работы с использованием сегментов URL.

Отправить комментарий