問題の世界

FCGIに ‘Status:404 Not Found’を使用する必要がありますか? | http-headers,php,http-status-codes

通常、PHPからHTTPステータスヘッダを送信する場合、HTTPヘッダを次のように送信します。

header("HTTP/1.0 404 Not Found");

しかし、 PHPマニュアルでは、FCGIホストの場合、 FCGIモジュールによってHTTPヘッダーに変換される
“Status”ヘッダー:

header("Status: 404 Not Found");

私はWindows 7のマシンでmod_fcgiを使用してPHPでapache 2.2を実行しており、
header( "HTTP/1.0 404 Not Found");
を使用してヘッダを送信するとうまくいくようです。

最近変わったのですか? FCGIホスト用の Status
ヘッダを送信する必要がありますか?他のプラットフォーム(solaris、linux)や他のWebサーバ(nginx、lighttp)でも誰でもこれを確認できますか?

ベストアンサー

cgi.rfc2616_headersオプションを有効にしない限り、
‘ステータス’スタイルのヘッダーを使用する必要はないと思います。

The description of that option is http://php.net/manual/en/ini.core.php

“HTTP応答を送信する際に使用するヘッダの種類をPHPに伝えます   コード。
0に設定されている場合、PHPはStatus:ヘッダを送信します。
  Apacheと他のWebサーバー。このオプションを1に設定すると、PHPは   »RFC
2616に準拠したヘッダーを送信します。あなたが知らない限り、0に設定しておいてください
  あなたがやっていること。 “

基本的にはHTTPスタイルのヘッダをPHPに送り、PHPは必要に応じてこれらを
‘ステータス’スタイルのヘッダに変換します。何年かの間にこれらがどちらかが間違って変換されたか、または複数の
‘ステータス’ヘッダが一度に送られたバグが多かったようです –
しかし、これらのバグはすべて今修正されているようです。ですから、HTTPスタイルのヘッダを設定してPHPに変換させるだけで安全だと思います。

また、私はヘッダをテストして送信しました( “HTTP/1.0 404 Not Found”);
FastCGIを使用して私の開発環境で正常に動作します。

Exit mobile version