这听起来可能是个愚蠢的问题,但我必须知道答案。我见过许多使用URL的网站,如下所示:http://www.example.com/?p=1
正在访问什么文件?我总是用这样的东西http://www.example.com/somepage.php?p=1.当"?"本身存在时,这意味着什么?
我最近安装了phpList来处理我的电子邮件活动,该程序将这种类型的URL用于订阅页面。我不知道它在访问什么页面。要查看它的实际操作,您可以访问https://www.mylittleblackebook.com/lists/?p=subscribe&id=3.
提前感谢您提供的任何线索。
这取决于您使用的web服务器。如果您使用的是Apache,那么DirectoryIndex
属性就是您要查找的。
这是它的默认值:
DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml
默认情况下(如您的示例中所示,没有专门调用的页面),Apache将按照指定的顺序搜索上面列出的每个文件,并使用找到的第一个文件。
参数的处理方式与是否指定文件名的处理方式相同。使用的默认文件将能够读取它们。
默认情况下,您正在访问index.*
。所以www.example.com
和www.example.com/index.php
是一样的。
若要传递任何参数,请使用?
作为第一个参数,使用&
作为任何其他参数。像www.emaple.com/index.php?p=1&r[0]=2&r[1]=5
。由于可以省略index.*
,因此可以编写www.example.com/?p=1&r[0]=2&r[1]=5
。
所以www.example.com/?p=1
正在访问index.*
文件(很可能是index.php
)。
阅读本文以获取更多信息(关于url中的?p1=v1&p2=v2
):
http://en.wikipedia.org/wiki/Query_string
示例:
http://www.example.com/?p=1
服务器端的手段:
print_r($_GET); //Array( p => 1)
https://www.mylittleblackebook.com/lists/?p=subscribe&id=3.
服务器端的手段:
print_r($_GET); //Array( p => subscribe, id => 3)
根据这些参数,你会得到什么文件?如果没有根据任何$_GET
值的php重定向,则这些参数无关紧要。
首先读取.htaccess
文件以了解服务器重定向。如果没有这样的文件,这就是规则:
www.site.com --> index.php
www.site.com/page -> page.php
www.site.com/dir/page -> /dir/page.php
请注意,任何php
文件都可以包含重定向,可以使用meta html tag
甚至使用JavaScript进行重定向。
当"?"本身存在时,这意味着什么?
它没有额外的意义。(如果需要,可以在$_SERVER['REQUEST_URI']
中检测到)