我不知道这是否可以实现...无论如何我会尝试。如果直接加载(您将浏览器指向直接 URL),我想拒绝查看某个文件夹中的 php 文件,但前提是您在某个页面上单击指向它们的链接。这可以在具有位置的 nginx 中实现吗?这不涉及任何安全问题,因此如果该方法不是 100% 安全,那也不是问题……
编辑:好的,让我们添加一些细节。我有一个 VPS,我有一个带有登录框的页面。输入登录详细信息后,您将访问一个页面,该页面包含指向 phpinfo/phpsysinfo/webmin 面板/apc status/nginx status 的链接。因此,您可以在一个页面上链接到软件来监控我的 VPS 的统计信息。我知道通过默默无闻的安全性并不好,但我觉得让这些信息没有真正暴露会更舒服。所以我想拒绝访问那些拒绝直接访问的页面(全部在 1 个目录中)(但前提是您来自受登录框保护的页面)。
你所描述的是基于
HTTP_REFERER
标题。如果您可以使用 Nginx 执行此操作,则必须使用 if 块来执行此操作,这将是低效的。我不确定你可以用其他任何方式做到这一点。但无论如何你都不应该这样做,因为正如你所说,它并不是真正安全的,只是隐藏的。你应该看看这些:
http://wiki.nginx.org/HttpAuthBasicModule
http://wiki.nginx.org/HttpAuthDigestModule
摘要会更安全。Basic 以明文形式传输用户/密码。但是,由于页面实际上受到保护,因此两者都比您所描述的要安全得多。
看这里可能是你所追求的:http ://wiki.nginx.org/HttpAccessModule
以下将所有直接请求重定向到 403 forbidden 页面。
当然,如果您愿意,您仍然可以从另一个 PHP 脚本访问该代码,它只是阻止了外部直接访问。