web-dev-qa-db-ja.com

リダイレクトループを引き起こしているルールを無効にする

ログインしているメンバーがホームページにアクセスすると、別のページにリダイレクトされるというルールを作成しました。ホームページは、匿名ユーザーと認証済みユーザーで異なる必要があります。

1つの問題は、私のルールが機能していないことです。誤ってリダイレクトループを作成しました。これは、モジュールを無効にするためのルールインターフェイスにアクセスできないことを意味します。 Drushを使用してルールモジュールを無効にできることはわかっていますが、オンに戻すと同じ問題が発生します。

Dbをざっと見て、rules_rulesテーブルを確認しました。ただし、データはblobとして保存されているため、編集できません。ルールを削除することを除いて、それを無効にするにはどうすればよいですか?

4
user788

いくつかのオプションがあります。

  • PHPを使用してデータを逆シリアル化することでデータを編集し、そこから何らかの意味を引き出そうとすることができます。おそらく1または0のステータスが存在します。
  • ルールをデータベースから完全に削除できます。
  • rules_invoke_event(1.4の場合はrules.module行249)を一時的に変更できます。call_user_func_array呼び出しをコメント化すると、サイトでルールが呼び出されなくなります。

これらのどちらでも機能するはずですが、個人的には、ルールファイルへの書き込みアクセス権があれば、最後のバージョンを使用します。

2
googletorp

ルール7.x-2.6では:

  • Rules_configテーブルで、問題のあるルールのアクティブな列を0に設定します
  • Cache_rulesテーブルを空にする/切り捨てる
1
Hans Rossel

彼らは私のdrupal 6プロジェクトの1つでリロードを元に戻すために行った方法です。

  1. sshを使用して端末にログインしました。
  2. データベースにログインしました。
  3. 選択したデータベース。
  4. rules_rulesテーブルに移動します。
  5. 影響ルールを削除するSQLクエリを記述しました。
0
Jaywant Topno

Devel Module モジュールにはこのための気の利いた設定があります。開発モジュールをインストールしてdevel/settingsにアクセスし、オプションDisplay redirection pageを有効にします。

説明が言うように

モジュールがdrupal_goto()を実行すると、クエリログとその他の開発者情報は失われます。この設定を有効にすると、中間ページが開発者に提示されるため、宛先ページに進む前にログを調べることができます。

リダイレクションにもかかわらず、中間ページにアクセスできます。

0
Gokul N K