【问题标题】:What file is being accessed if there is a /? after the website address?如果有 /,访问的是什么文件?在网址之后?
【发布时间】:2014-11-12 14:28:31
【问题描述】:

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

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

【问题讨论】:

标签: php html url webaddress


【解决方案1】:

这取决于您使用的网络服务器。如果您在 Apache 上,DirectoryIndex 属性就是您要寻找的。​​p>

这是它的默认值:

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

默认情况下(IE。没有专门调用的页面,如您的示例所示),Apache 将按指定顺序搜索上面列出的每个文件,并使用找到的第一个文件。

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

【讨论】:

  • 我虽然也是这样。我想它会默认为 index.html 或 index.php。问题是 index.html 文件中没有处理参数的代码,但是当您转到该页面时,它会生成一个完整的网页。
  • 当你调用一个 php 页面时,这只不过是一个最终输出 HTML 的脚本(或其他东西,但你明白我的意思)。对于客户端 Web 浏览器,调用 index.php 或 index.html 或 blabliblu.test 没有区别。唯一重要的是响应的格式。
  • 我现在觉得自己很蠢。我忽略了 index.php 文件。每个人都是正确的。我很抱歉浪费了大家的时间。谢谢你的回复。我非常感谢您的解释。
  • 如果您遇到问题,例如它调用 index.html 而不是 index.php,只需更改您的 apache 配置。
【解决方案2】:

默认情况下,您访问的是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)。

【讨论】:

  • 感谢您简洁的解释。我很感激。我认为这是一个新手问题,但直到最近我才遇到它。感谢您花时间解释它。
【解决方案3】:

阅读本文以获取更多信息(关于 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']中检测到)

【讨论】:

  • 问题不在于查询字符串。
猜你喜欢
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 2023-01-17
  • 1970-01-01
  • 2012-07-03
相关资源
最近更新 更多