Идея в общем-то простая – с помощью апачевского модуля mod_rewrite преобразовать “красивые” URL в такой набор параметров, которые понимает скрипт.
Самые частые пути:
1 2 3 |
www.shopscripsite.ru/index.php?productID=nnnn www.shopscripsite.ru/index.php?productID=nnnn&discuss=yes www.shopscripsite.ru/index.php?categoryID=nnnn |
Создадим в корне сайта файл .htaccess, если, конечно, его еще нет. И добавим в него такие строчки:
1 2 3 4 5 6 |
<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, которые я написал выше будут работать и такие:
1 2 3 |
www.shopscripsite.ru/product/nnnn www.shopscripsite.ru/product/nnnn/discuss www.shopscripsite.ru/category/nnnn |
А дальше надо править шаблоны. И, кое-где, файлы скрипта. Искать строчки типа
1 |
index.php?productID={$product_info.productID} |
и заменять на
1 |
/product/{$product_info.productID} |
Переменная у Smarty может называться и по-другому – зависит от шаблона. В общем смотреть, где формируются ссылки на категории и продукты. А также менять относительные ссылки на картинки и т.п. на абсолютные. В смысле
1 |
<img src="producst_pictures/{какая-то_переменная_Smarty}" alt="" /> |
на
1 |
<img src="/producst_pictures/{какая-то_переменная_Smarty}" alt="" /> |
Какие еще URL перезаписать? :-)
Спасибо. А нет ли случаем готового списка файлов (кроме шаблона) в которые надо вносить изменения? А то перебирать всё займёт много времени.
Нет, готового шаблона нет. Не вижу причин, чтобы отказываться от обычных URL shopscript’а.
Спасибо. А нет ли случаем готового списка файлов (кроме шаблона) в которые надо вносить изменения? А то перебирать всё займёт много времени.
Нет, готового шаблона нет. Не вижу причин, чтобы отказываться от обычных URL shopscript’а.
Сергею!!!
А зря я вот смотрю в поиске даже на яндексе начинают рулить ЧПУ урлы, только не просто ЧПУ, а чтоб ключевик был в урле, т.е. ищет например человек ноутбук Acer, и те сайты у кого адрес типа shop-script/product/Acer_Aspire_5315.html
при всех прочих равных стоят выше чем у кого обычный шоп скриптовский урл.
на гугле такая штука даже где-то в официальных документах описана, а теперь и на яндексе начинает это работать, если в урле есть ключевик то яндекс его даже подчеркивает!!!
P/S Скажу даже больше на официальных гугловских старницах видел гдето даже если ключевик на русском, а в урле есть транскрипция этого ключевика, то сайт будет выше!!!!!!
Сергею!!!
А зря я вот смотрю в поиске даже на яндексе начинают рулить ЧПУ урлы, только не просто ЧПУ, а чтоб ключевик был в урле, т.е. ищет например человек ноутбук Acer, и те сайты у кого адрес типа shop-script/product/Acer_Aspire_5315.html
при всех прочих равных стоят выше чем у кого обычный шоп скриптовский урл.
на гугле такая штука даже где-то в официальных документах описана, а теперь и на яндексе начинает это работать, если в урле есть ключевик то яндекс его даже подчеркивает!!!
P/S Скажу даже больше на официальных гугловских старницах видел гдето даже если ключевик на русском, а в урле есть транскрипция этого ключевика, то сайт будет выше!!!!!!
@Den: Вот только в моем методе не получится «shop-script/product/Acer_Aspire_5315.html», а получится «shop-script/product/458204» — вместо имени товара будет непонятный никому ID.
@Den: Вот только в моем методе не получится «shop-script/product/Acer_Aspire_5315.html», а получится «shop-script/product/458204» — вместо имени товара будет непонятный никому ID.
вот тош, придется видимо в таблицу с продуктами еще одно поле добовлять где писать url для каждого товара и искать товар чтоб можно было не только по ID а и по этому полю, типа получает index.php идентификатор цифровой, ищем по ID
а если он с букв начинается то ищем по новому полю.
Думаю как то так.
вот тош, придется видимо в таблицу с продуктами еще одно поле добовлять где писать url для каждого товара и искать товар чтоб можно было не только по ID а и по этому полю, типа получает index.php идентификатор цифровой, ищем по ID
а если он с букв начинается то ищем по новому полю.
Думаю как то так.