Отключить правило, которое вызывает цикл перенаправления
Я создал правило для зарегистрированных пользователей, согласно которому, если они переходят на домашнюю страницу, оно перенаправляет их на другую страницу. Домашняя страница должна отличаться для анонимных и аутентифицированных пользователей.
Одна из проблем заключается в том, что мое правило не работает. Я по ошибке создал цикл перенаправления. Это означает, что я не могу попасть в интерфейс правил, чтобы отключить модуль. Я знаю, что мог бы отключить модуль правил с помощью drush, однако у меня будет та же проблема, когда я верну его обратно вкл.
Я быстро заглянул в базу данных и увидел таблицу rules_rules. Однако данные хранятся в виде большого двоичного объекта, поэтому я не могу их редактировать. Кроме удаления моих правил, что я могу сделать, чтобы отключить его?
4 answers
У вас есть несколько вариантов.
- Вы можете попробовать отредактировать данные, десериализовав их с помощью PHP, и попытаться извлечь из них какой-то смысл. Скорее всего, существует статус, который равен либо 1, либо 0.
- Вы можете полностью удалить правило из базы данных.
- Вы можете временно изменить
rules_invoke_event
(rules.module
строка 249 для 1.4), если вы прокомментируете вызовcall_user_func_array
, на сайте не следует вызывать никаких правил.
Любой из них должен сработать, лично я бы выбрал последний если бы у меня был доступ на запись к файлам правил.
В Правилах 7.x-2.6:
- В таблице rules_config установите активный столбец равным 0 для проблемного правила
- Очистить/Усечь таблицу cache_rules
Они сделали так, чтобы я вернул перезагрузку в одном из своих проектов drupal 6.
- вошел в систему с помощью ssh на терминал.
- вошел в базу данных.
- выбранная база данных.
- перейти к таблице правил_рулей.
- написанный sql-запрос на удаление правила привязки.
Модуль разработки модуль имеет отличную настройку для этого. Установите модуль разработки и посетите devel/settings
, включите опцию Display redirection page
.
Как сказано в описании
Когда модуль выполняет функцию drupal_goto(), журнал запросов и другая информация о разработчике теряются. Включение этого параметра предоставляет разработчикам промежуточную страницу, чтобы можно было просмотреть журнал, прежде чем перейти на целевую страницу.
Вы можете посетить промежуточную страницу, несмотря на перенаправление.