2

从 PHP 中,是否有一种跨平台、跨 Web 服务器的方式来确定您正在运行的服务器上是否启用了 PATH_INFO?

似乎 $_SERVER['PATH_INFO'] 只有在脚本之后有额外的路径段时才会填充,因此如果请求是针对 /index.php 的,您无法可靠地判断 PATH_INFO 是否已启用。

4

2 回答 2

2

我认为没有一种明确的方式来获取这样的 Apache 配置值。

想到的一个想法是使用file_get_contents()to

http://current_site_domain/check.php/test

check.php会输出$_SERVER['PATH_INFO'].

如果请求的结果是“测试”,则 PATH_INFO 有效。

当然,这可能会失败,因为打开 URL 被禁用,因为您不知道本地域,因为有防火墙,等等。

另一种不太容易失败的方法是使用iframe

<iframe src="/check.php/It%20works!"></iframe>

如果您在 ifrane 中看到“它有效”,则 PATH_INFO 有效。可能对安装过程有用。

于 2012-01-03T00:55:30.323 回答
0

$_SERVER["PATH_INFO"] 应该始终可用。如果不是,则仅表示文件名和查询字符串之间没有额外信息。

于 2012-01-03T00:57:55.377 回答