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.