Улучшаем URL в Shop-Script

Идея в общем-то простая – с помощью апачевского модуля mod_rewrite преобразовать “красивые” URL в такой набор параметров, которые понимает скрипт.

Самые частые пути:

www.shopscripsite.ru/index.php?productID=nnnn
www.shopscripsite.ru/index.php?productID=nnnn&discuss=yes
www.shopscripsite.ru/index.php?categoryID=nnnn

Создадим в корне сайта файл .htaccess, если, конечно, его еще нет. И добавим в него такие строчки:

<IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteRule ^product/([^/]*)/discuss /product/$1/?discuss=yes [QSA,NE,L]
      RewriteRule ^product/([0-9]*) /index.php?productID=$1 [QSA,NE,L]
      RewriteRule ^category/([0-9]*) /index.php?categoryID=$1 [QSA,NE,L]
</IfModule>

Скажу честно – я не профессионал в составлении правил для mod_rewrite и Perl-овые регулярки знаю поверхностно. Наверняка эти команды можно оптимизировать, но надо же с чего-то начинать.

Собственно добавлением этих строчек все и заканчивается. Теперь вместе с теми URL, которые я написал выше будут работать и такие:

www.shopscripsite.ru/product/nnnn
www.shopscripsite.ru/product/nnnn/discuss
www.shopscripsite.ru/category/nnnn

А дальше надо править шаблоны. И, кое-где, файлы скрипта. Искать строчки типа

index.php?productID={$product_info.productID}

и заменять на

/product/{$product_info.productID}

Переменная у Smarty может называться и по-другому – зависит от шаблона. В общем смотреть, где формируются ссылки на категории и продукты. А также менять относительные ссылки на картинки и т.п. на абсолютные. В смысле

<img src="producst_pictures/{какая-то_переменная_Smarty}" alt="" />

на

<img src="/producst_pictures/{какая-то_переменная_Smarty}" alt="" />

Какие еще URL перезаписать? :-)

Related Posts with Thumbnails
02.11.2008 • Метки: , • Рубрики: Shop-Script
  • Den
    вот тош, придется видимо в таблицу с продуктами еще одно поле добовлять где писать url для каждого товара и искать товар чтоб можно было не только по ID а и по этому полю, типа получает index.php идентификатор цифровой, ищем по ID
    а если он с букв начинается то ищем по новому полю.
    Думаю как то так.
  • Сергей
    @Den: Вот только в моем методе не получится "shop-script/product/Acer_Aspire_5315.html", а получится "shop-script/product/458204" -- вместо имени товара будет непонятный никому ID.
  • Den
    Сергею!!!
    А зря я вот смотрю в поиске даже на яндексе начинают рулить ЧПУ урлы, только не просто ЧПУ, а чтоб ключевик был в урле, т.е. ищет например человек ноутбук Acer, и те сайты у кого адрес типа shop-script/product/Acer_Aspire_5315.html
    при всех прочих равных стоят выше чем у кого обычный шоп скриптовский урл.
    на гугле такая штука даже где-то в официальных документах описана, а теперь и на яндексе начинает это работать, если в урле есть ключевик то яндекс его даже подчеркивает!!!
    P/S Скажу даже больше на официальных гугловских старницах видел гдето даже если ключевик на русском, а в урле есть транскрипция этого ключевика, то сайт будет выше!!!!!!
  • Спасибо. А нет ли случаем готового списка файлов (кроме шаблона) в которые надо вносить изменения? А то перебирать всё займёт много времени.
  • Сергей
    Нет, готового шаблона нет. Не вижу причин, чтобы отказываться от обычных URL shopscript'а.
blog comments powered by Disqus