PHP 不允许我在从测试服务器传输后访问上面的 webroot


PHP Won't let me access above webroot after transferring from test server?

只是为了给出一点背景:我正在使用 Dreamweaver CS5 编写 php,XAMPP apache 作为测试服务器,并使用 000WebHost.com 免费托管以在远程服务器上进行测试。

我使用登录表单编写了一个应用程序,该表单请求图像并将其与其他一些安全文件一起存储在webroot上方。所有程序在 apache 上 100% 完美运行,作为我在笔记本电脑上的测试服务器。当我将文件复制到远程服务器时,任何试图访问 webroot 外部的链接都会断开。我可以进入我的登录页面和一个简单的处理脚本,该脚本位于webroot下,但不能通过它。

为什么我的链接突然断开?我使用文件结构三次检查所有相对路径是否正确,例如:

  • 包括
  • 图像
  • 安全
  • public_html

从public_html,我使用了文件路径:$path = '../安全/测试1.php';

感谢您的任何帮助,我真的需要尽快完成。

正如Musa所说,你不应该能够访问你"public_html"目录之外的任何内容。相反,您应该将所有其他目录放入其中,并更改(如果需要)链接的相对路径,以便它们像这样以这样的结构工作:

public_html
|
|_Includes
|
|_Images
|
|_Secure

编辑:正如我对此答案的评论中所述,我指的是您正在使用的托管公司,而不是那里的每个托管商。这是一个免费的,并非一切都如我们所愿:)

如果我没记错的话,您正在尝试将存储在私人目录中的图像直接加载到您的主页上。问题是访问者无法访问专用目录。页面中包含的任何路径都将导致 404。在您的本地计算机上,您的网络服务器可能已为您提供可用的图像或链接,因为您是本地计算机;您的操作系统不会检查您是否是网络服务器,并且应该能够看到这些文件。

要么

你应该将文件(应该是可访问的)公开存储在公共文件夹中,要么你应该创建某种代理方法,例如使用 PHP 来检查请求的文件并从磁盘加载它并显示。

检查错误日志(如果可用),当您遇到错误并且没有收到错误消息时,它们通常是您最好的信息来源。一个可能的问题可能是您的文件权限 - 确保 Web 服务器可读取Secure目录及其中的所有内容。