Обработка адресов и адреса страниц в CMS Drupal

Аватар пользователя artur.baranok
Опубликовано пн, 07/06/2015 - 16:13 пользователем artur.baranok
Форумы: 

Все запрашиваемые адреса Друпал обрабатывает через index.php. В ответ на запрос сервера делается запрос ?q=[адрес].

Примеры обработки адресов (что хотят от Друпала как обрабатывается):

* http://example.com/admin http://example.com/index.php?q=admin
* http://example.com/node/123 http://example.com/index.php?q=node/312
* http://example.com/user/1 http://example.com/index.php?q=user/1
* http://example.com/taxonomy/term/6 http://example.com/index.php?q=taxonomy/term/6

По умолчанию, работа системы чистых ссылок Друпала определена в файле .htaccess. Этот файл содержит набор правил, которые говорят Апачу как обрабатывать запрос. Стандартное содержание файлы .htaccess отвечающее за чистые ссылки:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Эти строчки говорят Апачу о том, что если запрашивается файл или папка, которых нет в файловой системе, то запрос должен быть помещён после index.php?q=. Этой обработкой запросов занимается веб-сервер и посетители сайта никогда не видят часть index.php?q=.

Примеры системных адресов:

* http://example.com/admin — управление сайтом.
* http://example.com/user/login — вход в аккаунт.
* http://example.com/user/logout — выход из аккаунт.
* http://example.com/user/register — регистрация.
* http://example.com/user/password — восстановление пароля.
* http://example.com/user/UID — страница пользователя.
* http://example.com/profile — список зарегистрированных пользователей.
* http://example.com/node — первая страница сайта.
* http://example.com/node/NID — документ.
* http://example.com/taxonomy/term/TID — термин.
* http://example.com/forum/TID — форум.
* http://example.com/forum — страница всех форумов.
* http://example.com/blog/UID — блог.
* http://example.com/blog — страница всех блогов.
* http://example.com/book — книга.

Примечание:

* UID — User ID (идентификатор пользователя, номер пользователя)
* NID — Node ID (идентификатор документа, номер документа)
* TID — Term ID (идентификатор термина (тега, категории), номер термина (тега, категории))

Если поддержка чистых ссылок не включена, то после названия домена в адресе будут присутствовать знаки ?q=. Например: http://example.com/?q=node/54.

Часто названия модулей присутствуют в адресах которые они генерируют, реже обзорную страницу какого-либо модуля можно открыть набрав в адресной строке браузера его название, т.е. для модуля Blog — это http://example.com/blog, для модуля User — это http://example.com/user. Такой же подход можно использовать и для дополнительных модулей.