WEB SEND HTTP REDIRECT
WEB SEND HTTP REDIRECT ( url {; *} )
引数 | 型 | 説明 | |
---|---|---|---|
url | Text | → | 新しいURL |
* | 演算子 | → | 指定されている場合 = URLは翻訳されない 省略されている場合 = URLは翻訳される |
説明
WEB SEND HTTP REDIRECTコマンドを使用すると、 URLをほかのURLへ転送することができます。
引数 url は、リクエストをリダイレクトすることができる新しいURLを格納しています。この引数がファイルへのurlである場合、WEB SEND HTTP REDIRECT ("/MyPage.HTM") のようにファイルへの参照を保持していなければなりません。
このコマンドは同じメソッド内にあるデータを送るコマンド (WEB SEND FILE、WEB SEND BLOBなど) より優先されます。
また、このコマンドを使用すると、リクエストを他のWebサーバーへリダイレクトすることも可能です。
4DはURLの特殊文字を自動的にエンコードします。 * を渡すと、4Dはそれらをエンコードしません。
このコマンドが送信するHTTPステータスコードは302: Moved Temporarilyです。"301 Moved Permanently"ステータスを送信したい場合は、WEB SET HTTP HEADERを使用して、"*X-STATUS"フィールドに”301”*を設定します。
例題
このコマンドを使用して、4D上でスタティックページを用いてカスタムリクエストを実行します。以下の要素をスタティックなHTMLページに設定するとします。
注: POSTアクション "/4DCGI/rech" は、テキストエリアとOKとCancelボタンに連携されています。
QR SET DESTINATIONに以下のコードを挿入します。
Case of
:($1="/4DCGI/rech") // 4DがこのURLを受信したら
// OKボタンが使用され、 ‘name’ フィールドにValueがある場合
If((bOK="OK")&(name#""))
// 同じメソッド内のはるか下に置かれた検索コードを
// 実行するためにURLを変更する
WEB SEND HTTP REDIRECT("/4dcgi/rech?"+name)
Else
// そうでなければ、始めのページに戻る
WEB SEND HTTP REDIRECT("/page1.htm")
End if
...
:($1="/4DCGI/rech?@") // URLがリダイレクトされたら
... // 検索コードをここに入れる
End case