CodeIgniter URLы

По умолчанию, URLы в CodeIgniter разработаны дружественными для поисковых систем и человекопонятными. Вместо использования стандартного “query string” подхода к URL являющегося синономичным с динамической системой, CodeIgniter использует сегментно-базирующийся/strong> подход:

example.com/news/article/my_article

Примечание

Строка запросов URL может быть дополнительно доступна, как описано ниже.

Сегменты URI

Сегменты в URL, в заимодействии с Модель-Вид-Контроллер подходом, обычно имеют вид:

example.com/class/function/ID
  1. Первый сегмент представляет класс контроллера, который будет вызван.
  2. Второй сегмент представляет класс функции, или метода, которая будет вызвана.
  3. Третий, и любые другие дополнительные сегменты, представляют 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 файле можно назначить суффикс, который будет добавлен к сгенерированным CodeIgniter URL . Например, если 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.