这听起来像是一个愚蠢的问题,但我必须知道答案。我见过许多使用以下网址的网站: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。
提前感谢你们可以获得的任何光明。
答案 0 :(得分:1)
默认情况下,您正在访问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
)。
答案 1 :(得分:1)
这取决于您使用的Web服务器。如果你在Apache上,DirectoryIndex
属性就是你要找的。 p>
这是默认值:
DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml
默认情况下(IE。没有专门调用的页面,如您的示例所示),Apache将按指定的顺序搜索上面列出的每个文件,并使用找到的第一个文件。
参数的处理方式与指定的文件名相同。使用的默认文件将能够读取它们。
答案 2 :(得分:0)
阅读本文以获取更多信息(关于网址中的?p1=v1&p2=v2
):
http://en.wikipedia.org/wiki/Query_string
示例:
表示服务器端:
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']
中检测到)