如果有参数但没有显式的php页面,它是什么页面?


What page is it if there parameters but no explicit page for php

这是一个初学者的问题;我在谷歌上搜索,找不到答案。

我明白,如果我有一个这样的PHP页面的URL:

http://blah.tld/somearea/myfile.php?param1=foo&param2=bar

接收参数foobar的页面是myfile.php,但如果我有一个这样的URL,哪个页面正在接收参数:

http://blah.tld/somearea/?param1=foo&param2=bar

index.php下的/somearea吗?

实际调用哪个程序/文件取决于web服务器的配置。例如,在Apache中,有一个配置参数DirectoryIndex,它指示在没有指定文件的情况下默认调用什么,例如

DirectoryIndex index.php

将确保在上述场景中调用index.php。此外,可以为每个目录设置此配置,以便在不同的目录中调用不同的文件/脚本。如果不知道目标服务器是如何配置的,就不可能回答这个问题。

这是一个服务器设置。例如,在Apache中设置为DirectoryIndex。通常在PHP服务器上,默认值是index.php

如果没有安装PHP,默认为index.htmlindex.htm。在ASP服务器上,默认值是default.aspx.

在这种情况下index.php将接收参数

与请求http://blah.tld/somearea/时使用的文件相同。

可以是index.php或任何其他文件。如果使用了框架,它本身可能不是一个文件,而是一个单独文件中的函数。

这只是一个使用.htaccess重写的URL,所以是的,你可以,你必须以同样的方式获取GET参数,所以在index.php它将是

echo $_GET['param1'].' '.$_GET['param2']; //Will output foo bar