从 PHP 中,是否有一种跨平台、跨 Web 服务器的方式来确定您正在运行的服务器上是否启用了 PATH_INFO?
似乎 $_SERVER['PATH_INFO'] 只有在脚本之后有额外的路径段时才会填充,因此如果请求是针对 /index.php 的,您无法可靠地判断 PATH_INFO 是否已启用。
我认为没有一种明确的方式来获取这样的 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 有效。可能对安装过程有用。
$_SERVER["PATH_INFO"] 应该始终可用。如果不是,则仅表示文件名和查询字符串之间没有额外信息。