открыл components/com_virtuemart/virtuemart.php
в самое начало, после
if( !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
добавил
if ($_SERVER["REQUEST_URI"] == '/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=6077&category_id=94&option=com_virtuemart&Itemid=2')
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://site.by/palatki-tenty-shatry/palatki-letnie/comfortika/palatka-letnyaya-comfortika-trial-3-plus.html");
}
на первый взгляд получилось, но буду делать наверное не через if и даже наверное не case (он вообще вроде не подходит по крайней мере мне так кажется в данном случае). я попробую через БД. Хотя я думаю можно сюда как-то воткнуть стандартный обработчик перенаправления Joomla, но я в этом пока не силен, если есть идея пишите.
Ну и еще варианты если есть рассмотрим.
через БД. вот что у меня получилось
вставил код вместо выше предложенного
$db = JFactory::getDBO();
$query = 'SELECT `new_url` FROM `#__virtuemart_redirect301`' .
' WHERE `old_url` = "' . $_SERVER["REQUEST_URI"] .'"';
$db->setQuery($query);
$new_url = $db->loadResult();
if($new_url)
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: $new_url");
}
и создал таблицу
CREATE TABLE IF NOT EXISTS `xxxxx_virtuemart_redirect301` (
`old_url` varchar(500) NOT NULL,
`new_url` varchar(500) NOT NULL
)
где old_url старый адрес вида /index.php?cat=1&prod=2
new_url
http://site.ru/category_name/product_nameтеперь надо её заполнить и проверить на деле (и посмотреть отдает ли старая страница редирект 301)