При работе интернет магазина www.hlopok.com.ua и переходе с 1С 7.7 на 8.2 - изменились все ID товаров и категорий. И при этом в Google чудесно был проиндексирован сайт. Virtuemart при заходе с Google выдавал сообщение, мол
Ошибка: Извините, но запрошенный товар не найден!
или
Error: Sorry, but the Product you've requested wasn't found!
Дабы убрать с индекса и правильно как то оформить подобные высказывания со стороны VirtueMart в инете ничего не нашлось, кроме платного плагина обработки 404 ошибки.
Поковырявшись 10 минут.
Вопрос был решен:
Открываем файлик administrator\components\com_virtuemart\html\shop.product_details.php
// Redirect back to Product Browse Page on Error if( !$db_product->next_record() ) { $vmLogger->err( $VM_LANG->_('PHPSHOP_PRODUCT_NOT_FOUND',false) ); return; }
И добавляем одну строчку (header ('HTTP/1.0 404 Not Found');):
// Redirect back to Product Browse Page on Error if( !$db_product->next_record() ) { $vmLogger->err( $VM_LANG->_('PHPSHOP_PRODUCT_NOT_FOUND',false) ); header ('HTTP/1.0 404 Not Found'); return; }
Теперь поисковики получают ответ 404 на отсутствующий товар. Может кому пригодится.
Этот метод для VM 1.* версии найден тут
п.с. после хедера с 404 я бы еще добавил редирект на нужную страницу, например - новые товары. добавляем одну строку:
header('Refresh: 5; URL=http://ссылка_на_нужную_страницу');