Есть очень неприятная проблема, когда на сайте появляется запись: "Oops, looks like this request tried to create an infinite loop. We do not allow such things here. We are a professional website!". Вроде ничего страшного, но страшно раздражает пользователей.
Как избавиться от старых редиректов?
Пишем небольшой drush скрипт:
<?php
// Set up the query using the database API
$query = db_select('redirect', 'r');
$query->join('url_alias', 'ua', 'r.redirect = ua.source AND r.source = ua.alias');
$query->fields('r', array('rid', 'redirect', 'source'));
// Execute it and fetch the results, one by one
$result = $query->execute();
$any_results = FALSE;
while($r = $result->fetchAssoc()) {
// For each result, flag we've got at least one result, notify the CLI user
// of what we're doing, and delete it using Redirect's own API
$any_results = TRUE;
drush_log(dt("Deleting unwanted redirect !r (!s -> !t)",
array("!r" => $r['rid'], "!s" => $r['source'], "!t" => $r['redirect'])), "success");
redirect_delete($r['rid']);
}
// No results? Report if that's the case
if (!$any_results) {
drush_log(dt("Nothing to delete!"), "ok");
}?>
Сохраняем переходим в директорию нашего сайта и запускаем:
Вуа-ля, все лишние редиректы удалены!
Комментарии
спасибо, помогло!