[REVO] Избавляемся от дубликатов alias

Сложилась такая ситуация, что при импорте данных, url генерируется автоматически, и было очень много дубликатов, что не позволяло открывать страницы с дублирующими alias.

Ниже приведено решение, которое производит поиск дубликатов и их редактирование.
При это редактируются не все найденные alias, а только второй и последующий, это делается для того чтобы оставить 1 оригинал.

Редактирование происходит путем добавления id в начало адреса страницы.

<?php
error_reporting(0);
mysql_connect('localhost','','');
mysql_select_db('');

$d = mysql_query("SELECT group_concat(`id`) ids, count(id) c FROM `revo_site_content` GROUP by concat(uri) HAVING c > 1");
while($res = mysql_fetch_array($d))
{
$ids = explode(",",$res['ids']);
$i = 0;
foreach($ids as $id)
{
	$i++;
	if($i == 1)
		continue;
	echo $id . "\r\n
";
	$m = mysql_fetch_array(mysql_query("SELECT uri FROM `revo_site_content` WHERE id = $id"));
	$uri = $m['uri'];
	$uri2 = explode("/",$uri);
	$uri2 = end($uri2);
	$uri = str_replace($uri2,$id."-".$uri2, $uri);
		
	mysql_query("UPDATE `revo_site_content` SET `uri` = '".$uri."', `alias` = CONCAT('".$id."-',`alias`) WHERE `id` = '$id'");
}
}


Настройки

Указываем данные для подключения к БД
mysql_connect('localhost','','');
mysql_select_db('');


Запускаем скрипт по крону, если на сайте регулярно появляются дубликаты за счет импорта данных.

1 комментарий

avatar
спасибо большое за скрипт, всё работает)
а вот Custom URLs не помог)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.