-2

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

预先感谢您对此提供的任何启发。

4

3 回答 3

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)。

于 2014-11-12T14:33:43.067 回答
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 将按指定顺序搜索上面列出的每个文件,并使用找到的第一个文件。

参数的处理方式与是否指定文件名相同。使用的默认文件将能够读取它们。

于 2014-11-12T14:34:05.200 回答
0

阅读本文以获取更多信息(关于?p1=v1&p2=v2在 url 中):

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'](如果你愿意,它可以被检测到)

于 2014-11-12T14:38:50.037 回答