Самый популярный движок интернет-магазина для Joomla.

Настройка Virtuemart

alex » 27 мар 2012, 16:16

Наверное, сказывается что работаю с Virtuemart не первый год, впрочем, как и с Joomla.
В общем, иногда вижу как на форумах кто-то долго и мучительно ищет решение какой-то проблемы, мда... я-то и ответ знаю, но реально времени жалко писать, свой-то форум вообще забросил.
В общем, буду писать здесь, кому нужно - через поисковик найдут.
Короче, вчера опять забавный случай был. Обратился ко мне человек, с просьбой продвинуть недавно созданный магазин, я посмотрел, вижу, вся адресация сделана на сайте.. через одно место.. :o Ну вот, примеры:
h_ttp://xxxxx.ru/index.php?page=shop.browse&category_id=8&vmcchk=1&option=com_virtuemart&Itemid=4
h_ttp://xxxxx.ru/index.php/2011-03-24-08-13-47.html?page=shop.browse&category_id=60
Про то что один раздел доступен по нескольким адресам я молчу.
Хотя при использовании стандартного SEF (ЧПУ), разделы магазина должны быть доступны по адресам вида
h_ttp://xxxxx.ru/index.html?page=shop.browse&category_id=33
Ну, в принципе с ходу ясно что не так: люди не прописывали алиасы, а SEF включили, соответственно, Joomla подставляет вместо алиаса дату создания пункта меню.
Зашел в админку, в настройки сервера, где включается SEF смотрю, использование mod_rewrite не включено, хм.., включил, после этого новая адресация отказалась работать, в общем, очередная оказалась типичная недоделка - забыли преобразовать в корне сайта файл "htaccess.txt" в ".htaccess" .
Но прикол не в этом, с этим мог бы и новичок разобраться, думаю.
Меня заинтересовало, что за хрень в первом примере "vmcchk=1"
Полез Гуглить, оказалось что это Магазин проверку на прием клиентом Cookies осуществляет, но самое печальное - это то как советовали на форумах людям решить этот вопрос: "патчить код", чуть ли не обновлять версию магазина!!
И никто! не написал что если внимательно изучить в админке настройки магазина, то там будет поле "Включить проверку приема Cookie браузером пользователя".
Достаточно просто снять галочку в этом поле :P и ненавистный параметр исчезнет из адреса. Ну не актуальна на самом деле проверка приема cookie.
Всё просто.

Вот ещё.
Бывает что люди неожиданно сталкиваются с такой проблемой что периодически не работает ajax-корзина. Не добавляется товар. Я тоже когда-то на это напарывался.
В общем, суть проблемы в том что в настройках магазина указан адрес сайта, например, без префикса www, а на сайт, например, с Яндекса заходят по адресу где есть www-префикс.
Т. е. адреса с www и без не склеены корректно через .htaccess
И тут вступает в силу Аяксовая заморочка с кросс-доменной политикой, в общем разные для него это домены.. и не хочет он кросс-доменные запросы выполнять.
Так что определяйтесь с главным зеркалом с www или без, прописывайте редирект в .htaccess и в админке магазина указываете правильный адрес.
Вот пример редиректа запроса с www на без www
Код: Выделить всё
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]


А вот наоборот редирект запросов без www на адрес с www
Код: Выделить всё
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} (.+)$
RewriteRule ^(.*) http://www.%1/$1 [R=301,L]


Все это, конечно, сразу после объявления RewriteEngine On
и перед прочими Rewrite rules.

P. S. Что правильнее: с www или без, пусть каждый решает сам, я думаю что с www - это атавизм.
alex
Администратор
 
Сообщения: 56
Зарегистрирован: 17 апр 2010, 00:45

Вернуться в Virtuemart