为什么即使 URL 不存在我也能从 Web 服务器访问文件?

为什么即使 URL 不存在我也能从 Web 服务器访问文件?

警告:我完全是新手

所以我想了解如何从网站上访问 PDF 文件,

“www.website.com/Documents/Publications/2015/file.pdf”

但是 www.website.com/Documents 并不“存在”,即它显示为一个断开的链接。

1)为什么我仍然可以访问该文件?

2)如何找出父目录中还有哪些其他文件?

答案1

可以设置 Web 服务器来禁止访问目录 - 这意味着您只能访问www.mywebsite.com/Documents包含索引文件 (index.html、index.php 等) 的链接。

这意味着直接文件访问有效,Web 服务器刚刚被设置为不列出该目录中的文件;尽管您仍可以直接访问它们。Google“Apache/nginx 目录列表”或类似内容,以确切了解其工作原理。

答案2

从概念上讲,HTTP URL 与文件系统无关。

网站管理员可以将 HTTP URL 映射到文件系统上的文件,但这不是必需的。

如果你访问类似这样的 URL http://example.com/Documents/Publications/2015/file.pdf,它可能是

  • file.pdf文件夹中存在/Documents/Publications/2015/的名为
  • document_v1.260.pdf 文件夹中存在/foobar/的名为
  • 一个名为的文件I-am-not-a-PDF.jpg
  • pdf-generator.php一个动态创建 PDF 文件的脚本,
  • 或者是其他东西。

即使 URL 映射到文件系统(如第一种情况),也不一定所有父文件夹都可以通过 URL 访问。例如,网站管理员可以决定在 提供内容http://example.com/Documents/Publications/,但不在 提供内容http://example.com/Documents/

(如果你对技术方面感兴趣,请参阅我对 Stack Overflow 问题的回答友好的 URL 是否基于目录?

相关内容