Forums / National / Russian / Модули и плагины / Проблема с .htaccess и SEF URLs

Dayver
#33241 2012-02-22 13:45

Опишу свой опыт - на геноа была трабла у сайта с урлами вида site.ru/category_name/page_alias.html , а именно одна и та же страница была доступна была по любому адресу site.ru/bla-bla/page_alias.html или site.ru/olo-lo/page_alias.html из-за чего после того как страница редактировалась и перемещалась в другую категорию у поисковика в индексе хранилась с разными адресами - что не есть хорошо .... решением было написание мини плагина (на хук page.main) в десяток строк с кодом нечто вроде

if ($c != $pag['page_cat'])
{
	//sed_log("Попытка захода на страницу №".$pag['page_id']." с некорректной категорией в url (".$c." хотя должно быть ".$pag['page_cat'].")", 'sec');// для сбора статистики неверхных заходов
	$pag_new_url = (empty($pag['page_alias'])) ? $pag['page_id'] : $pag['page_alias'];
	header("Location: " . SED_ABSOLUTE_URL . $pag['page_cat'] . "/" . $pag_new_url . ".html");
	exit;
}

Соответственно могу порекомендовать решить проблему аналогичным способом

  1. в .htaccess написать правило вроде такого
    RewriteRule ^page/([0-9]+)\.shtml$ page.php?id=$1 [QSA,NC,NE,L]
  2. И сделать аналогичный миниплуг... только с учетом специфики сиены - суть которого в том если переменная $c пуста то редиректить на новый формат урла

Это всего лишь совет и напутствие в какую сторону смотрел бы я в вашей ситуации - но никак не готовое решение

Pavlo Tkachenko aka Dayver