URLы CodeIgniter
По умолчанию дизайн URL в CodeIgniter является дружественным как для поисковиков, так и для людей. Вместо того, чтобы использовать стандартный подход "строк запроса", CodeIgniter использует сегменториентированный подход:
example.com/news/article/my_article
Примечание: Строки запроса могут быть включены опционально, как показано ниже.
Сегменты URI
Сегменты в URL, в соответствии с подходом Model-View-Controller, обычно представляют:
example.com/class/function/ID
- Первый сегмент представляет класс контроллера, который должен быть загружен.
- Второй сегмент представляет функцию класса, или метод, который должен быть вызван.
- Третий и любые другие сегменты предоставляют данные и любые другие переменные, которые будут переданы в контроллер.
Класс URI и помощник URL содержат функции, которые упростят вашу работу с данными URI. Также вы можете переписывать URL, используя URI роутинг для большей гибкости.
Удаление index.php из URL
По умолчанию index.php включен в URL:
example.com/index.php/news/article/my_article
Вы можете просто убрать этот "index.php" из URL, используя файл .htaccess с несколькими простыми правилами. Вот пример этого файла, использующего «негативный» метод, который будет перенаправлять все, за исключением указанных элементов:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Suffix
В примере выше любой HTTP-запрос будет перенаправляться в index.php, за исключением запросов в директорию images и файла robots.txt
Добавление суффикса URL
В вашем файле config/config.php вы можете указать суффикс, который будет добавлен ко всем URL, сгенерированным CodeIgniter. Например, если 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, опция использования строк запроса станет активной. Ваши контроллеры и функции станут доступными, благодаря использованию "триггерных" слов 'c' и 'm':
index.php?c=controller&m=method
Пожалуйста обратите внимание Если вы используете строки запроса, вам придется самостоятельно создавать URL, так как помощник URI (и некоторые другие, вроде помощника форм) создают URL по сегментно-ориентированному принципу.