CodeIgniter, руководство пользователя к версии 1.7.2


CodeIgniter

URL в CodeIgniter

По умолчанию, URL в CodeIgniter спроектированы дружественными человеку и поисковым системам. Вместо использования подхода стандартной "строки запроса" к URL, который является синонимом динамическим системам, CodeIgniter использует подход основанный на сегментах:

example.com/news/article/my_article

Замечание: Опционально строку запроса в URL можно включить, как описано ниже.

URI Segments

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

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

Вы можете легко удалить этот сегмент, поместив в файл .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, основанными на сегментах.