URL при работе с CodeIgniter

 

URL в CodeIgniter по умолчанию сделаны понятными и дружественными к поисковым машинам (SEF URL - Search Engine Friendly URL). Вместо стандартного для динамических сайтов подхода с использованием "строки запроса", CodeIgniter использует подход, основанный на сегментах:

  1. somesite.com/news/article/my_article

Примечание: использование строки запроса можно по желанию включить, см. описание ниже.

Сегменты URL

Сегменты в URL, в соответствии с MVC-шаблоном, обычно используются следующим образом:

  1. somesite.com/class/function/ID

  1. Первый сегмент обозначает класс контроллера который должен быть вызван.
  2. Второй сегмент обозначает функцию (метод) класса контроллера, которая должна быть вызвана.
  3. Третий, и любые последующие сегменты обозначают параметры, которые должны быть переданы контроллеру.

_Класс URI_ и вспомогательные функции URL содержат средства для работы с URI. Кроме того, вы можете переназначить URL используя _Маршрутизацию URI_, что обеспечивает гибкость приложения.

Убираем index.php из URL

По умолчанию index.php будет присутствовать в URL используемых на сайте:

  1. somesite.com/index.php/news/article/my_article

Вы можете легко убрать его из URL используя файл .htaccess с небольшим набором простых правил. Пример такого файла, использующего "отрицательный" метод, при котором перенаправляется все, кроме ресурсов описанных в правилах перенаправления:
  1. RewriteEngine on
  2. RewriteCond $1 !^(index\.php|images|robots\.txt)
  3. RewriteRule ^(.*)$ /index.php/$1 [L]

В приведенном примере любой HTTP запрос кроме запроса index.php, файла robots.txt и файлов изображений рассматривается как запрос к файлу index.php.

Добавляем суффикс в URL

В файле config/config.php вы можете указать суффикс, который будет добавлятся к адресам, сгенерированным CodeIgniter. К примеру, если оригинальный адрес страницы

  1. somesite.com/index.php/products/view/shoes

вы можете по желанию добавить суффикс, например, .html, чтобы адрес страницы выглядел так:
  1. somesite.com/index.php/products/view/shoes.html

Включение использования строки запроса

В некоторых случаях вы можете захотеть использовать URL со строкой запроса вида:

  1. index.php?c=products&m=view&id=345

CodeIgniter опционально поддерживает эту возможность, включить ее можно в файле config/config.php. Если вы откроете свой файл конфигурации то вы можете увидеть следующие строки:

  1. $config['enable_query_strings'] = FALSE;
  2. $config['controller_trigger'] = 'c';
  3. $config['function_trigger'] = 'm';

Если вы установите значение "enable_query_strings" в TRUE, эта возможность будет включена. Ваши контроллеры и их методы станут доступны через параметры "trigger":

  1. index.php?c=controller&m=method

Примечание: если вы используете строку запроса, вам придется самостоятельно генерировать URL вместо использования вспомогательных функций URL (а также ряда других в спомогатлеьных функций, например, форм), которые сделаны для работы с использованием сегментов URL.

Отправить комментарий

  • Allowed HTML tags: <em> <b> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <h2> <h3> <h4> <table> <tr> <td> <th>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.

Подробнее о форматировании

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов

Вход в систему

Последние комментарии