НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
87 of 152 menu

Таблица oc_url_alias

Таблица oc_url_alias является ключевым элементом системы ЧПУ в OpenCart. Она хранит сопоставления между техническими URL, содержащими параметры (например, index.php?route=product/product&product_id=123), и красивыми, SEO-оптимизированными адресами (например, /smartphone/samsung-galaxy-s23).

Поля

Поле Тип данных Описание
url_alias_id int Уникальный идентификатор записи (первичный ключ). Автоматически увеличивается при добавлении новой записи.
query varchar(255) Строка запроса, которую система должна преобразовать. Это исходный URL в формате route=path/to/page?m=value. Например, product_id=45 или route=information/information&information_id=4.
keyword varchar(255) Ключевое слово (slug), на которое будет заменен исходный запрос. Это часть SEO-URL. Например, для запроса product_id=45 ключевым словом может быть apple-iphone-14.

Как это работает

Когда пользователь переходит по ссылке вида /apple-iphone-14, движок OpenCart ищет это значение в поле keyword таблицы oc_url_alias. Найдя совпадение, система берет соответствующее значение из поля query (например, product_id=45) и использует его для загрузки правильной страницы (в данном случае страницы товара с ID 45).

Обратный процесс происходит при генерации ссылок на сайте. Если скрипту нужно создать ссылку на товар с product_id=45, он ищет запись с таким значением в поле query и, если находит, подставляет значение из поля keyword для формирования красивого URL.

Помимо товаров, категорий, производителей и информационных страниц, данная таблица также используется для настройки редиректов 301. Если в поле query записан URL, начинающийся с route=, а в поле keyword - другой ЧПУ, система будет перенаправлять пользователя с одного адреса на другой.

Важно: значения в поле keyword должны быть уникальными, так как они являются виртуальными путями на сайте.

Пример SQL-запроса

Посмотреть все созданные ЧПУ для товаров можно следующим запросом:

SELECT u.url_alias_id, u.keyword, u.query, pd.name FROM oc_url_alias u LEFT JOIN oc_product_description pd ON ( u.query = CONCAT('product_id=', pd.product_id) AND pd.language_id = 1 ) WHERE u.query LIKE 'product_id=%';

Смотрите также

  • таблицу oc_product,
    которая содержит основные данные о товарах
  • таблицу oc_product_description,
    которая хранит текстовые описания товаров
  • таблицу oc_seo_url,
    которая пришла на смену oc_url_alias в OpenCart 3.x
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить