URL в CodeIgniter
По умолчанию, URL в CodeIgniter спроектированы дружественными человеку и поисковым системам. Вместо использования подхода стандартной "строки запроса" к URL, который является синонимом динамическим системам, CodeIgniter использует подход основанный на сегментах:
example.com/news/article/my_article
Замечание: Опционально строку запроса в URL можно включить, как описано ниже.
URI Segments
Сегменты в URL, в соответствии с подходом Модель-Представление-Контроллер (MVС), обычно представляют собой:
example.com/class/function/ID
- Первый сегмент представляет класс контроллера, который должен быть вызван.
- Второй сегмент представляет функцию класса, или метод, который должен быть вызван.
- Третий и любые дополнительные сегменты представляют ID или любые другие переменные, которые должны быть переданы контроллеру.
Класс URI и помощник URL содержат функции для облегчения вашей работы с информацией в URI. Дополнительно, для большей гибкости ваши URL могут быть переопределены с помощью URI Роутинга.
Удаление сегмента "index.php"
По умолчанию, сегмент "index.php" будет включен в ваши URL:
example.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 вы можете указать суффикс, который будет добавляться ко всем URL, созданным 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 опционально поддерживает эту возможность, которая может быть включена в вашем файле config/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, основанными на сегментах.
