私は、以下のヘッダを削除したい:PHPで特定のHTTP応答ヘッダーを削除するにはどうすればよいですか?
Connection: Keep-Alive
Server: Apache/2.2.13 (Win32)
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=66
私は、以下のヘッダを削除したい:PHPで特定のHTTP応答ヘッダーを削除するにはどうすればよいですか?
Connection: Keep-Alive
Server: Apache/2.2.13 (Win32)
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=66
私はこれらのヘッダは、アパッチによって設定され、これは、PHPで適切に行うことができるとは思いません。
PHP 5.3のheader_remove()
がありますが、それはPHPで設定されたヘッダーのみを削除できます(私が正しく理解している場合)。また、不要なヘッダーを空の値で再度送信して上書きすることもできますが、元の値はそのまま送信されます。
Apacheの設定で、これをルートで修正するのが最善の方法です。たとえば、ServerTokens
ディレクティブは、 "Server:"ヘッダーを変更できます。
"set by PHP"とはどういう意味ですか? PHPで設定された 'Host'、' Connection'、 'Content-Type'、' X-Powered-By'を考えていますか? – Pacerier
@Pacerier 'header_remove()'は、PHPで 'header()'によって以前に設定されたヘッダのみを削除することができます。あなたが言及する最初の2つのヘッダーは一般にApacheによって設定されます。 'x-powered-by'が' header_remove() 'を使って削除できるかどうかは分かりませんが、私はそうは思いません。 'Content-type'はPHPスクリプトで設定することができ、そうであれば' header_remove() 'で取り消すことができます。 –
ここで 'x-powered-by'を取り除くことができるようです。これはApacheによって設定されていませんか? ApacheとPHPの間の行はどこですか? – Pacerier
あなたは、非解析ヘッダCGIにあなたのスクリプトを回すことができます。そのために、あなたは、nph-script.cgi
にあなたのexample.php
スクリプトの名前を変更(+ x)は、それが実行可能にし、シェバングを追加する必要があります。
#!/usr/bin/php-cgi
<?php
これはHTTP/1.0 200 OK
ステータス行を含め、しかしを自分でALL HTTPヘッダを送信する必要があります。 (rfc2616 php.iniの設定を参照してください)
ああ、実際に私はこれが現行のApacheバージョンではまだ動作しているかどうかは分かりません。
PHP(または他の任意のサーバーサイト言語)を使用し、ヘッダーをConnection:closeに送信します。これにより、接続はもはやキープアライブではないため、ApacheはKeep-Aliveヘッダーを省略します。例えば
header('Connection: close');
すべてのタイプのサーバーで同じように動作するかどうかはわかりませんが、ご了承ください。
続きを読むhere
あなたも、これらのヘッダーフィールドが使用され何を知っていますか? – Gumbo
ええええええええええええええええ、私は彼らが自分のために話すと思いますか? –