如果有/?正在访问什么文件?在网站地址之后?

时间:2014-11-12 14:28:31

标签: php html url webaddress

这听起来像是一个愚蠢的问题,但我必须知道答案。我见过许多使用以下网址的网站: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

提前感谢你们可以获得的任何光明。

3 个答案:

答案 0 :(得分:1)

默认情况下,您正在访问index.*。因此www.example.comwww.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属性就是你要找的。

这是默认值:

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

示例:

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']中检测到)