2 ноября 2008 г.

Уломали :-) Улучшаем URL в Shop-Script

Обсуждение и дальнейшее развитие темы смотрите в блоге "WEB рукоделие". Комментируйте там же. Простите за неудобства.

Идея в общем-то простая – с помощью апачевского модуля 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}” … />

на

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

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