Обновление: проблема Drupal # 1796596 была совершена с Redirect 1.0-rc2 (июнь 2015 г.). Правильное решение для этой проблемы сейчас - обновить до последней стабильной версии модуля Redirect, а затем запустить обновления базы данных. Любые ваши перенаправления будут надежно очищены.
Эта проблема возникла из-за ошибки в модуле перенаправления. Вы запускаете его, изменяя URL-адрес страницы (или, может быть, просто ее заголовок, если вы используете pathauto), а затем изменяете ее на прежний.
Например, допустим, у меня была страница под названием «компания», и я изменил название на «Наша компания» (что изменило псевдоним URL на нашу компанию). Затем я решил, что на самом деле предпочитаю его первым способом, поэтому я снова отредактировал узел и изменил название на «Компания». В этот момент сообщение об ошибке « Ой, похоже, что этот запрос пытался создать бесконечный цикл. Мы не разрешаем такие вещи здесь. Мы - профессиональный веб-сайт! » Появится на странице компании.
Есть три способа исправить это, в зависимости от того, что проще для вас. Они варьируются по сложности / храбрости сверху вниз.
Метод Drupal / PHP
Существует длинная ошибка Drupal по этому вопросу: выпуск № 1796596, и есть хороший рабочий патч, который исправляет проблему в комментарии № 124 .
Надеюсь, это исправление скоро будет добавлено в модуль Redirect для загрузки. Однако прошло уже больше года без каких-либо признаков прогресса на этом фронте.
Метод SQL
Самое быстрое решение проблемы - это запрос SQL к базе данных, как показано ниже. БУДЬТЕ ОСТОРОЖНЫ и попробуйте этот метод только в том случае, если вы знаете, что делаете, - сначала попробуйте его на пробной копии сайта и убедитесь, что у вас есть резервная копия, и сразу после этого протестируйте изменения на случай, если вам потребуется откат. Будьте особенно осторожны и протестируйте первый запрос очень хорошо, если вы используете i18n ... Запустите первый запрос, чтобы показать, что будет удалено, и второй, чтобы фактически удалить.
--Show records to be deleted:
SELECT r.rid, r.language, r.source, r.redirect
FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
--Delete redirects shown in above query:
DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
Если вы не знаете, как применять исправления или выполнять SQL-запросы, вам необходимо решить проблему вручную. Не волнуйтесь, это на самом деле довольно легко сделать (но по сравнению с другими методами это занимает больше времени):
Ручной метод:
Для каждой страницы, где отображается предупреждение:
- Редактировать страницу
- Прокрутите до конца формы редактирования
- Обратите внимание на основной URL страницы. Он отображается под «настройками пути URL», например, «Псевдоним: компания» будет означать, что URL страницы - «компания». Вы можете нажать «Настройки пути URL», чтобы посетить его раздел и подтвердить псевдоним URL, если вы не уверены.
- Теперь нажмите «URL перенаправления». Будут показаны перенаправления на текущую страницу. Будет как минимум одно перенаправление, совпадающее с псевдонимом URL, который вы указали на шаге 3. Возможно, более одного перенаправления в этом списке будет соответствовать псевдониму URL.
- Удалите все перенаправления, которые совпадают с псевдонимом URL. Это данные о проблеме, которые вызывают появление цикла и сообщения об ошибке.
- Если в разделе «Перенаправления URL-адресов» больше нет перенаправлений, точно совпадающих с псевдонимом URL-адреса проблемной страницы в настройках пути URL-адреса, сообщение об ошибке исчезнет.