在wwwroot文件夹外调用PHP文件(Windows主机,Arvixe)

时间:2014-11-01 03:11:03

标签: php html security document-root windows-hosting

快速解决方案(感谢下面的Tom的答案,请阅读他的完整说明):在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';
- 就是这样,不能通过URL直接访问test.php。如果你想从外面转到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文件的简单链接/按钮。我不希望用户对php文件有直接的URL访问权限(这就是我把它放在根目录之外的原因),但我希望其他文件如index.html能够访问它。我已经尝试了web.config和.user.ini的安全性(这些都没有用),但我想如果这样可行,那么安全性应该没问题。

  • 我试过href =“../ test.php”,但它不起作用(404 - 找不到文件或目录)
  • test.php的权限与wwwroot(通过cp门户网站)
  • 相同
  • 我不想包含php文件,我想单独调用并运行它
  • 我已经查看了stackoverflow中的每个相关帖子两天,似乎没有任何工作
  • 如果您的建议是使用文件的完整路径或创建虚拟目录,请提供示例。因为我试过没有运气
  • 我还读过你需要php脚本来访问root之外的php文件,但不知道如何调用外部文件。我曾尝试过这次,但得到了404例外。如果有用的话会很棒

有没有人有一个简单的方法来实现这一目标? (特别是使用Windows Arvixe托管的任何人)。我觉得这里应该有一个简单的答案):感谢您阅读这篇文章并非常感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

某些PHP脚本必须可通过Web访问。如果您不希望主PHP脚本可通过Web访问,则仍需要另一个可通过Web访问的PHP脚本来调用主脚本。除非你引入像SSI这样的其他技术,否则无法解决这个问题。

如果您使用Windows或不使用Windows,则没有任何区别。