1

由于臭名昭著的 IIS 错误与“Location”重定向标头有关,我们必须改用“Refresh”标头。

所以,我想知道以编程方式检测 PHP 脚本是否在 IIS 下运行的最佳方法。

目前使用的方法是DIRECTORY_SEPARATOR !== '/',但显然 Apache 和 Windows 下的其他服务器被错误识别为 IIS。

我想过:

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

...但是该元素对应于 HTTP 响应的“Server”标头,并且可能已通过各种方式将其删除。

任何更健壮的方法的想法?

4

1 回答 1

1

根据http://www.helicron.net/php/,IIS 将 $_SERVER['DOCUMENT_ROOT'] 留空,但 apache 不会。

于 2012-09-11T08:22:28.837 回答