Чтобы обновить множество старых url-псевдонимов и сделать их по новому формату, необходимо выполнить код:
<?php
$aliases = [
'/old/bad/url/format/name-1' => '/new/url/name-1',
'/old/bad/url/format/name-2' => '/new/url/name-2',
…
'/old/bad/url/format/name-n' => '/new/url/name-n',
];
$pathService = \Drupal::service('path.alias_storage');
$count = 0;
foreach($aliases as $key => $value) {
$path = $pathService->load(['alias' => $key]);
if ($path === false) {
\Drupal::messenger()->addWarning('Path not found: ' . $key);
continue;
}
$path = $pathService->save($path['source'], $value, $path['langcode'], $path['pid']);
$count++;
}
\Drupal::messenger()->addStatus('Done successfully: ' . $count);
?>
Комментарии
Может просто поставить и настроить pathauto?
Я бы сказал "нужно")