CodeIgniter URLы
По умолчанию, URLы в CodeIgniter разработаны дружественными для поисковых систем и человекопонятными. Вместо использования стандартного “query string” подхода к URL являющегося синономичным с динамической системой, CodeIgniter использует сегментно-базирующийся/strong> подход:
example.com/news/article/my_article
Примечание
Строка запросов URL может быть дополнительно доступна, как описано ниже.
Сегменты URI
Сегменты в URL, в заимодействии с Модель-Вид-Контроллер подходом, обычно имеют вид:
example.com/class/function/ID
- Первый сегмент представляет класс контроллера, который будет вызван.
- Второй сегмент представляет класс функции, или метода, которая будет вызвана.
- Третий, и любые другие дополнительные сегменты, представляют 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.