【问题标题】:PHP Apache on ubuntu backward paths aren't workingubuntu 反向路径上的 PHP Apache 不起作用
【发布时间】:2019-08-23 22:13:28
【问题描述】:

我已经在一个新的 ubuntu 系统上安装了 Apache。域的根文件夹是/var/www/abc/web

abc 文件夹中,我有一个名为 logo_out.jpg 的图像,在 web 文件夹中,我有同一个图像,名为 logo_in.jpg

我在 /web 文件夹中有一个简单的 html 文件,名为 index.html,它只包含一行

<img src="../logo_out.jpg" alt="image"/>

这根本不起作用。这太奇怪了。我做了一些更多的测试,我注意到../ 在这里永远不会倒退。为了确保这一点,我尝试了这个。

<img src="../logo_in.jpg" alt="image"/>

这不应该正常工作,因为文件名不正确,但它正在工作。即使我给&lt;img src="../../logo_in.jpg" alt="image"/&gt;,它也会在web 文件夹中使用相同的logo_in.jpg

我不明白为什么会这样。我是否缺少 Apache 中的任何模块或其他任何东西?

仅供参考,我有 PHP 5.6apache 2.4.29

【问题讨论】:

  • 如果文件log_out.jpg 位于文档根目录之外,那么您将无法直接在 HTML 中使用它。您只能链接到 inside 文档根目录的路径。此外,如果图像直接位于文档根目录中,您可以使用src="/theImage.jpg"(初始斜线将使路径相对于根目录)。
  • abc 是这里的根
  • 那么你应该更新你的问题,因为它说:“域的根文件夹是/var/www/abc/web”,这将使web文档根目录,而不是 abc
  • @MagnusEriksson 我错过了。我验证了root,它是web。这就是问题所在。感谢您指出问题

标签: php html apache ubuntu


【解决方案1】:

您的服务器将(谢天谢地)阻止对路径abov您的网络目录的请求。您不能请求 高于 根 Web 目录的任何文件,这在 RFC HTTP 标准中甚至是不可能的。无论您使用 HTML 链接如何above WEB DIR,Chrome 和其他浏览器都会请求WEB DIR 的根目录。如果你链接到

http://example.tld/../file.ext

浏览器会要求

http://example.tld/file.ext

因为无法请求 web 根目录以上的文件。

【讨论】:

  • 我真的以为这是一个傻瓜帖子。是的,我不是以英语为母语的人,所以我混合了这些词来指定目录位置。我的坏,会解决它。
猜你喜欢
  • 2020-07-12
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 2014-06-25
  • 2015-08-29
  • 1970-01-01
相关资源
最近更新 更多