0
快速解决方案(感谢下面汤姆的回答,阅读他的完整解释):在 webroot 目录中创建一个新的 php 文件;假设 temp.php。从那里,使用 include 或 request 调用 webroot 之外的 test.php 文件。
index.html -> temp.php -> test.php
- 我正在使用 javascript 转到 temp.php,但也可以使用 href。
- 在 temp.php 中,我使用了:include dirname(__FILE__)。'/../test.php';
- 就是这样,test.php 不能通过 URL 直接访问。如果您想从外部访问 webroot 中的文件,请使用以下内容: header("location:".dirname(__FILE__).'/../wwwroot/index.php'); 请参阅:http://stackoverflow.com/questions/13550471/php-include-file-in-webroot-from-file-outside-webroot,我在哪里找到 FILE/DIR 东西

原始问题:
我有一个托管在 Arvixe 上的网站(Windows 托管,而不是 Linux)。
在我的域目录中,我有一个 test.php 文件和 wwwroot 文件夹。
在 wwwroot 文件夹中,我有一个 index.html 文件。

从 index.html 文件中,我只想要一个调用 test.php 文件的简单链接/按钮。我不希望用户直接通过 URL 访问 php 文件(这就是我将其放在根目录之外的原因),但我希望其他文件(如 index.html)能够访问它。我已经尝试了 web.config 和 .user.ini 的安全性(没有工作),但我认为如果这有效,那么安全性应该没问题。

  • 我已经尝试过 href="../test.php",但它不起作用(404 - 找不到文件或目录)
  • test.php 的权限与 wwwroot 相同(通过 cp 门户)
  • 我不想包含 php 文件,我想单独调用和运行它
  • 我已经看了两天 stackoverflow 中的所有相关帖子,但似乎没有任何效果
  • 如果您的建议是使用文件的完整路径或创建虚拟目录,请提供示例。因为我都试过了都没有运气
  • 我还读过您需要 php 脚本才能访问根目录之外的 php 文件,但不知道如何调用外部文件。我已经尝试过一次,但得到了 404 异常。如果有效就太好了

有没有人有一个简单的方法来完成这个?(尤其是使用 Windows Arvixe 托管的任何人)。我觉得这里应该有一个简单的答案):感谢您阅读本文,非常感谢您的任何建议

4

1 回答 1

1

一些 PHP 脚本必须可以通过网络访问。如果您不希望您的主 PHP 脚本可通过 Web 访问,您仍需要另一个可通过 Web 访问的 PHP 脚本来调用主脚本。除非您引入诸如 SSI 之类的附加技术,否则无法解决此问题。

无论您是否使用 Windows 来满足您的要求,都没有区别。

于 2014-11-01T03:25:17.923 回答