首页 > 解决方案 > 在php中这个请求之后会发生什么

问题描述

我在网站上看到了一些奇怪的代码。我对此感到非常困惑。有我测试自己的服务器的http请求:

http://192.168.1.3/folder/ui/login_html.php/TEST/TEST

名为 login_html.php 和 TEST 的文件夹不存在。我检查了 Chrome 的调试信息。它可以正确请求文件但无法解析它。调试信息
似乎会请求 login_html.php 中引用的所有 css 和 js 资源,并且请求是由TEST发起的。
顺便说一句,我在 login_html.php 中什么也没做,我只是引用文件并编写了一些 html 代码。access_log
中有 apache 信息,而error_log中没有任何信息:

"GET /cos/ui/login_html.php/TEST/js/cloudmanager.js HTTP/1.1" 200 9564 "http://192.168.1.3/cos/ui/login_html.php/TEST/TEST" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"

我对此感到困惑。有人可以解释一下吗?

标签: phphtmlhttp

解决方案


之后的所有?内容都是查询字符串。通常这包含表单中的变量var1=value1&var2=value2。在这种情况下,PHP 会自动解析这些并将它们放入$_GET数组中。

在您的示例中,查询字符串不包含一组正常的变量,因此该$_GET数组可能没什么用。$_SERVER但是,您可以从数组中获取整个查询字符串。

$var = $_SERVER['QUERY_STRING'];
// $var would be "/HOME/getVersion"

推荐阅读