Таблица url_alias
Таблица url_alias является ключевым компонентом системы путей Drupal. Она хранит соответствие между внутренними системными путями (например, node/123) и их пользовательскими псевдонимами (например, about-us). Это обеспечивает создание понятных человеку и поисковым системам URL-адресов.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
pid |
serial |
Первичный ключ, уникальный идентификатор записи псевдонима. Автоматически инкрементируется. |
source |
varchar(255) |
Внутренний системный путь Drupal, для которого создается псевдоним. Например, node/123, taxonomy/term/456 или user/789.
|
alias |
varchar(255) |
Пользовательский псевдоним пути. Должен быть уникальным. Например, about-our-company или blog/my-first-post.
|
language |
varchar(12) |
Языковой код псевдонима (например, en, ru). Если значение равно und, псевдоним считается языково-нейтральным и будет использоваться для всех языков, для которых не задан специфичный псевдоним.
|
Как это работает
Когда пользователь или поисковый робот запрашивает URL на сайте Drupal, система сначала проверяет, существует ли запрошенный путь в таблице url_alias в столбце alias. Если совпадение найдено, Drupal перенаправляет запрос на соответствующий внутренний путь из поля source и обрабатывает его.
Псевдонимы можно создавать вручную через административный интерфейс (Администрирование » Конфигурация » Поиск и метаданные » URL-алиасы) или автоматически с помощью модуля Pathauto, который генерирует их по заданным шаблонам на основе заголовка материала, даты его создания или других полей.
Поле language позволяет иметь разные псевдонимы для одного и того же системного пути на разных языках в multilingual-установках. Это критически важно для корректной работы многоязычных сайтов.
Важно отметить, что в Drupal 8 и более поздних версий данная таблица была заменена на path_alias и работает через Symfony Routing component. Однако таблица url_alias остается фундаментальной для понимания механизма работы URL в Drupal 6 и 7.
Пример SQL-запроса
Получить все псевдонимы для русской версии сайта можно следующим запросом:
SELECT pid, source, alias
FROM url_alias
WHERE language = 'ru' OR language = 'und'
ORDER BY alias;
Найти системный путь по известному псевдониму:
SELECT source
FROM url_alias
WHERE alias = 'about-us';
Смотрите также
-
таблицу
node,
которая хранит основные данные материалов (нод) -
таблицу
users,
которая содержит данные зарегистрированных пользователей -
таблицу
taxonomy_term_data,
которая хранит термины таксономии -
таблицу
menu_links,
которая отвечает за хранение пунктов меню