外部URLへのリダイレクトに使用するAPI関数は何ですか?


21

モジュールを作成するとき、Drupalパスにリダイレクトするには、を使用しdrupal_gotoます。

外部ページへのリダイレクトに使用する必要があるAPI関数はありますか?または、行く方法を設定しLocationdrupal_set_headerいますか?

PSリクエストに対して何らかの処理を行う必要があります。mod_rewrite/ mod_aliasApacheレベルまたはDrupal Path redirectモジュールでは、私の問題を解決しないでください。

回答:


25

内部および外部リダイレクトにはdrupal_goto()を使用する必要があります。

外部リダイレクトに「external」オプションを使用します。 drupal_goto($url, array('external' => TRUE));

drupal_goto($ path = ''、配列$ options = array()、$ http_response_code = 302)

$ options:(オプション)追加オプションの連想配列で、次の要素があります:

  • 'query':URLに追加するクエリキー/値ペア(URLエンコードなし)の配列。
  • 'fragment':URLに追加するフラグメント識別子(名前付きアンカー)。先頭の「#」文字を含めないでください。
  • 'absolute':デフォルトはFALSE。出力を強制的に絶対リンクにするかどうか(http:で始まる)。RSSフィードなど、サイトの外部に表示されるリンクに役立ちます。
  • 'alias':デフォルトはFALSE。指定されたパスがすでにURLエイリアスであるかどうか。
  • 'external':指定されたパスが外部URLであるかどうか。
  • 'language':オプションの言語オブジェクト。リンク先のパスがサイトの内部にある場合、$ options ['language']を使用してURLのエイリアスを検索します。$ options ['language']を省略すると、グローバルな$ language_urlが使用されます。
  • 'https':このURLが安全な場所を指すかどうか。定義されていない場合、現在のスキームが使用されるため、ユーザーはそれぞれHTTPまたはHTTPSのままになります。TRUEはHTTPSを強制し、FALSEはHTTPを強制しますが、HTTPSは変数「https」がTRUEに設定されている場合にのみ強制できます。
  • 'base_url':言語依存URLで必要な場合にベースURLを変更するために、内部でのみ使用されます。
  • 'prefix':言語依存URLで必要な場合にパスを変更するために、内部でのみ使用されます。
  • 'script':クリーンURLが無効になっているときに使用するDrupalのルートディレクトリ内のスクリプトファイル名(「index.php」など)。最新のWebサーバーのほとんどは自動的に「index.php」を検出するため、デフォルトは空の文字列です。クリーンURLが無効になっている場合、返されるURLの$ options ['script']に$ pathの値がクエリパラメーター 'q'として追加されます。index.phpを自動的に見つけるように構成できないWebサーバーにDrupalをデプロイする場合、hook_url_outbound_alter()を実装して、この値を「index.php」に強制することができます。
  • 'entity_type':url()を呼び出したオブジェクトのエンティティタイプ。url()がentity_uri()によって呼び出された場合にのみ設定されます。
  • 'entity':URLが生成されているエンティティオブジェクト(ノードなど)。url()がentity_uri()によって呼び出された場合にのみ設定されます。

$ http_response_code:(オプション)リダイレクトに使用するHTTPステータスコード。デフォルトは302です。3xxリダイレクトステータスコードの有効な値は、RFC 2616および新しいHTTPステータスコードのドラフトで定義されています。

301:永久に移動しました(ほとんどのリダイレクトの推奨値)。

302:見つかりました(DrupalおよびPHPのデフォルト、検索エンジンのスパム送信に使用される場合があります)。

303:その他を参照してください。

304:変更されていません。

305:プロキシを使用します。

307:一時的なリダイレクト。

Drupal 8

Drupal 8はdrupal_goto関数削除しました。外部URLにリダイレクトするには、次の質問に対する回答を参照してください。外部URL にリダイレクトするにはどうすればよいですか?


1
非常に良い答え
OV

+1 tunic(および編集入力用のNikhil M)この回答は、公式のAPIドキュメントよりも優れています:api.drupal.org/api/drupal/includes%21common.inc/function/…(回答では、options配列は包括的に説明)。認識のためにオレグも+1。
therobyouknow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.