相对路径在 apache2 网络服务器上不起作用

相对路径在 apache2 网络服务器上不起作用

我对 Linux 和 Apache 还不太熟悉,相对路径方面存在问题。我在 Mac 上本地开发了我的网站,使用相对路径,一切运行正常。我的文件位于包含以下子文件夹的文件夹中:

  • 站点
  • 样式表
  • 图片

现在我正尝试在运行 Debian 的 Linux 服务器上建立我的网站。几乎所有事情都进展顺利,我可以通过互联网访问我的 index.html。但显然,相对路径不起作用,因为我将我的图像、css 文件和其他网站放在上面的子文件夹中,我尝试使用相对路径访问它们,但实际上它们不起作用。当我尝试访问 sites 文件夹中的另一个网站 (about.html) 时,我只收到此错误:

404 未找到 该服务器上未找到请求的 URL /sites/about.html。

例如,从我的 index.html,我尝试使用以下路径访问我的 css 文件:

../css/standard.css

我还实现了外部路径,它们工作正常。我非常感谢任何帮助或线索。非常感谢!

答案1

出于安全原因,../somepath当跨度超出文档路由时,通常不允许使用类似路径。对于类似 URL,http:/www/example.com/content/index.html它们应该是可以接受的;但对于类似 URL,http://www.example.com/index.html它们不应该。

我收到类似这样的路径请求../../../../../etc/passwd。如果满足这一要求,请求者将获得我系统上有效用户 ID 的列表,他们可以尝试破解这些用户 ID。

正如前面提到的,错误日志是查找此类问题的好地方。

答案2

为了安全起见,这是不允许的,您可以使用指令将其添加到配置文件中顺序允许、拒绝允许所有更多参考:http://httpd.apache.org/docs/2.2/mod/core.html#directory

相关内容