КАК сделать окончание страницы товара .html средствами .htaccess

#
КАК сделать окончание страницы товара .html средствами .htaccess
адресная строка к товару имеет вид
http://domain.ru/shop/gruppa-tovara-1/gruppa-tovara-1/item_100/
надо бы
http://domain.ru/shop/gruppa-tovara-1/gruppa-tovara-1/item_100.html

я так понимаю, что после стандартного
RewriteRule ^(.*)$ /index.php

следует указать нечто типа..
RewriteRule ^(.*)/item_([0-9]+)\.html$ $1/item_$2/$

и ничего не происходит.... может, кто-нибудь укажет, где я не прав..
http://in61.ru
Модератор
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
#
Re: Re: КАК сделать окончание страницы товара .html средствами .htaccess
Спасибо, топик этот видел... но, мне кажется проблему это не решает... путь к товару (item_001, item_002 и т.д.) ставит автоматом при загрузке скрипт с закрытым кодом... добавлять на тысячах товара в окошке редактирования руками .html после пути, наверное - не вариант... вот и хочется переложить это на mod_rewrite
http://in61.ru
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
incomsys писал(а):
но, мне кажется проблему это не решает
попробуйте сделать и казаться перестанет

incomsys писал(а):
путь к товару (item_001, item_002 и т.д.) ставит автоматом при загрузке скрипт с закрытым кодом…
саму ссылку формирует xsl шаблон с открытым и легко редактируемым кодом

incomsys писал(а):
обавлять на тысячах товара в окошке редактирования руками. html после пути, наверное — не вариант…
не надо на тысячах товара - надо один раз в xsl-шаблоне (правда в нескольких местах и в нескольких шаблонах. но общее число замен для магазина сводится примерно к двум-трем десяткам)

incomsys писал(а):
вот и хочется переложить это на mod_rewrite
Только вот он тут совершенно не при чем По крайней мере в том виде, в каком вы это хотите сделать.
Заказов не беру. Консультирую редко.
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
Спасибо за пояснения... Если не затруднит, подскажите ОДИН из шаблонов, ответственных за формирование ссылки... Остальные найду сам...
http://in61.ru
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
Уточнаю вопрос... на уровне XSL шаблонов, формирующих ссылки с .html  - все понятно, НО представим, на страницах появятся ссылки на товар в виде
http://domain.ru/shop/gruppa-tovara-1/gruppa-tovara-1/item_100.html
в карточке товара его путь по-прежнему item_100... в переменной path или fullpath в шаблонах приходит ссылка без .html...
естественно - страница не найдена...

так вот, как повлиять на выдачу этих переменных...

http://in61.ru
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
МагазинТовар и МагазинКаталогТоваров
Оба лежат в группе "Интернет-магазин" в разделе XSL-шаблоны в центре администрирования.
Находите в коде шаблона все теги <a>...</a> и дописываете .html внутри параметра href. И смотрите что получается, потом дорабатываете напильником неудачные места.
Заказов не беру. Консультирую редко.
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
Спасибо... именно этот я и сделал... на страницах появились ссылки в виде
http://domain.ru/shop/gruppa-tovara-1/gruppa-tovara-1/item_100.html
дык вот тут то и при тыке в эту ссылку и возникает ошибка, т.к. в {path}, пока я в пути товара не поменяю item_100 на item_100.html будет приходить
http://domain.ru/shop/gruppa-tovara-1/gruppa-tovara-1/item_100

в том-то и вопрос - надо повлиять на выдачу пути товара, добавив к нему .html или перебить все пути товара ручками
http://in61.ru
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
incomsys, вам же не зря в первом же ответе давали ссылку. Там написано:
HostCMS писал(а):
Далее создаете (если отсутствуют) и указываете следующие значения константам:
    * OPTIONAL_LAST_SLASH, значение true
    * NOT_EXISTS_FILE_404_ERROR, значение false
    * DENY_LOCATION_302_LAST_SLASH, значение true

Это делается в админке, в разделе "Константы".

Если с указанными выше константами все равно выдает ошибку, то возможно еще надо чуть подпилить код настройки ТДС Интернет-магазин, в самом начале, где происходит определние текущего товара/группы по url. Так, если навскидку, то поменять последний элемент массива пути, чтобы он не содержал ".html".
Заказов не беру. Консультирую редко.
#
Re: КАК сделать окончание страницы товара .html средствами .htaccess
Ну и, кстати, да, сейчас проверил у себя на тестовой площадке - код настроек ТДС Интернет Магазин надо немного менять.
Перед фрагментом
if(preg_match("^user-(.*)^", end($GLOBALS['URL_ARRAY']), $regs))
{
   // Установка кукис для аффилиат-программы
   setcookie('affiliate_name', $regs[1], time() + 31536000, '/');
   $break_if_path_not_found = false;
}
else
{
   $break_if_path_not_found = true;
}

я добавил такие строчки:
$last = end($GLOBALS['URL_ARRAY']);
$key = key($GLOBALS['URL_ARRAY']);
$GLOBALS['URL_ARRAY'][$key] = str_replace('.html', '', $last);

После этого товар спокойно определяется с .html вместо последнего слеша
Заказов не беру. Консультирую редко.
Авторизация