Эх. Как говорится - мысли сходятся. Так как не нашел вначале, то написал
подобный
Из своей плюшки размещу интересный кусок кода:
(добавить можно в начало роутера):
define('REDIRECT_WITHOUT_SEO_URLS',true);//true - автоматически перенаправлять со ссылок без ЧПУ на ссылки с ЧПУ: true - разрешить, false - запретить, тоесть при заходе на ссылку page=shop.browse&category_id=6987 301 редирект на category/6987-elektronnye-knigi.html и у посетителя откроется та же страница но с ЧПУ ссылкой: category/6987-elektronnye-knigi.html
$uri = & JURI::getInstance();
$current = $uri->toString( array('query'));
$option = JRequest::getCMD('option');
if(!empty($current) && REDIRECT_WITHOUT_SEO_URLS && $option == 'com_virtuemart'){
$query = array();
$current = JString::str_ireplace('?','',$current);
$current = JString::str_ireplace('&','&',$current);
parse_str($current,$query);
if(isset($query['page']) && !empty($query['page'])){
$uri = & JURI::getInstance();
$current = $uri->toString( JURI::root()).''.JRoute::_('index.php?'.$uri->getQuery());
$current = JString::str_ireplace('&','&',$current);
$mainframe = & JFactory::getApplication();
$mainframe->redirect($current,'','',true);
exit();
}
}
Что тут происходит? Собственно я проверяю текущую страницу VirtueMart на предмет того, что мы попали на ссылку с index.php без seo преобразования. И если это так: срабатывает 301 редирект на страницу с seo ссылкой. В итоге мы сокращаем количество дублей страниц в поисковиках вдвое, оставляя только ЧПУ ссылки.
Еще как вариант выкинуть категорию со страницы продукта, так как там получается +2 ссылки: с категорией - в списке товаров категории, без категории на страницах: предыдущий/следующий товар, и в модулях сторонних.
И еще моментец. Перед использованием strtr надо бы разок или в cp прогнать, или придумать что-то другое. strtr не дружит с юникодом. во избежание, так сказать, веселых казусов. Но это так, мелочи.
Автору низкий поклон, написано здорово!)