* @throws \Drupal\redirect\Exception\RedirectLoopException
*/
public function findMatchingRedirect($source_path, array $query = [], $language = Language::LANGCODE_NOT_SPECIFIED) {
+ $source_path = ltrim($source_path, '/');
$hashes = [Redirect::generateHash($source_path, $query, $language)];
if ($language != Language::LANGCODE_NOT_SPECIFIED) {
$hashes[] = Redirect::generateHash($source_path, $query, Language::LANGCODE_NOT_SPECIFIED);
return $this->manager->getStorage('redirect')->loadMultiple($ids);
}
+ /**
+ * Finds redirects based on the destination URI.
+ *
+ * @param string[] $destination_uri
+ * List of destination URIs, for example ['internal:/node/123'].
+ *
+ * @return \Drupal\redirect\Entity\Redirect[]
+ * Array of redirect entities.
+ */
+ public function findByDestinationUri(array $destination_uri) {
+ $storage = $this->manager->getStorage('redirect');
+ $ids = $storage->getQuery()
+ ->condition('redirect_redirect.uri', $destination_uri, 'IN')
+ ->execute();
+ return $storage->loadMultiple($ids);
+ }
+
/**
* Load redirect entity by id.
*