Редирект разных типов URL в WebAsyst

Категория: WebAsyst| Веб-программирование

7 Авг 2011

Недавно в целях оптимизации потребовалось все внутренние ссылки на продукт вида – /product/pierre-cardin-jeans/ преобразовать в ссылки вида – /product/1337/, соответственно где 1337 это просто ID продукта. Другими словами убрать «буквенные ссылки» и сделать всё цифрами. Дело происходит на движке WebAsys ShopScript. В админке функция «Адреса страниц магазина» отсутствует.

Ну первое с чем нужно разобраться это отредактировать внутреннюю перелинковку – список товаров внутри каталога. Для этого в файле /published/SC/html/scripts/templates/fronted/product_brief.html, который отвечает за вывод товаров в категориях нужно найти строчку

{assign var=_product_url value="?productID=`$product_info.productID`&product_slug=`$product_info.slug`"|set_query_html}

и заменить её на

{assign var=_product_url value="?productID=`$product_info.productID`"|set_query_html}

Также если есть вывод списков товаров на сайте, нужно в файле /published/SC/html/scripts/templates/fronted/product_list.html сделать тоже самое.

Таким образом внутренняя перелинковка готова, но также необходимо сделать редирект, чтобы заходя на буквенный URL перекидывало на URL  с цифрами. Первая мысль «Ну чё ща всё в .htaccess стряпать можно», но через .htaccess ничего не получится. Тогда необходимо найти, где  находится файл роутинга. А файл-роутер в WebAsyst Shop Script находится в директории – published/SC/html/scripts/classes/class.furl.php

Для редиректа с букв на цифры находим функцию __renderGetString() и в неё после строк

 case 'product':
$productEntry = new Product();
$productEntry->loadBySlug($this->__path_settings['product_slug']);
if($productEntry->productID){

Добавляем

Header("Location: http://сайт/product/".$productEntry->productID);
die();

Редирект работает, все URL с ID продукта, всё хорошо.

Вот таким способом можно сделать однотипные ссылки в WebAsyst, и аналогично делается редирект на «буквенные ссылки».

Кстати, очень интересно:

Опубликовать в twitter.com Опубликовать в своем блоге livejournal.com Поделится ссылкой на yandex.ru

Комментариев к записи: 1

Виктор

6 Июль 2012 в 3:38 дп

А как у категорий, Id категории с цифр перевести на буквенный id ?

Написать комментарий

Вы должны Войти, чтобы оставить комментарий.

О блоге

Данный блог создан с целью помочь, как начинающему вебмастеру, так и опытному разработчику, в решении проблем возникающих при разработке сайтов. Здесь Вы прочитаете полезные статьи о том, как грамотно произвести SEO оптимизацию своего сайта, и найдёте важные исследования в сфере интернет-маркетинга. Научитесь писать собственные компоненты и модули для известных CMS, а также узнаете интересные методы работы с Фреймворками, CSS, HTML, jQuery и PHP. Из записей блога вы поймёте как грамотно разрабатывать макеты сайтов и что такое валидная вёрстка. БЛОГZOR – поможет Вам стать web-Гуру и понять тонкости веб-мастеринга.

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

  • Амир: форма появилась на сайте, но письмо не приходит на [...]
  • Ян: Все нравится, единственное, раскрывающийся блок мо [...]
  • СПАСИБО!: Спасибо тебе! Замечательная функция. очень помогла [...]
  • Алексей: Подскажите, а как заставить этот скрипт отработать [...]
  • Дмитрий: Заработало, надо было малость поменять путь в conf [...]

Можно Скачать