1

"Location" リダイレクト ヘッダーに関する IIS の悪名高いバグのため、代わりに "Refresh" ヘッダーを使用する必要があります。

PHPスクリプトがIISで実行されているかどうかをプログラムで検出する最良の方法を知りたいです。

現在使用されている方法は ですDIRECTORY_SEPARATOR !== '/'が、明らかに Windows の Apache などのサーバーは IIS として誤って認識されます。

私は考えました:

strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false

...しかし、この要素は HTTP 応答の「サーバー」ヘッダーに対応しており、さまざまな手段で削除されている可能性があります。

より堅牢な方法のアイデアはありますか?

4

1 に答える 1

1

http://www.helicron.net/php/によると、IIS は $_SERVER['DOCUMENT_ROOT'] を空のままにしますが、Apache はそうしません。

于 2012-09-11T08:22:28.837 に答える