快速解决方案(感谢下面汤姆的回答,阅读他的完整解释):在 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 托管的任何人)。我觉得这里应该有一个简单的答案):感谢您阅读本文,非常感谢您的任何建议