快速解决方案(感谢下面的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的安全性(这些都没有用),但我想如果这样可行,那么安全性应该没问题。
有没有人有一个简单的方法来实现这一目标? (特别是使用Windows Arvixe托管的任何人)。我觉得这里应该有一个简单的答案):感谢您阅读这篇文章并非常感谢您的任何建议
答案 0 :(得分:1)
某些PHP脚本必须可通过Web访问。如果您不希望主PHP脚本可通过Web访问,则仍需要另一个可通过Web访问的PHP脚本来调用主脚本。除非你引入像SSI这样的其他技术,否则无法解决这个问题。
如果您使用Windows或不使用Windows,则没有任何区别。