【发布时间】:2017-02-22 01:22:46
【问题描述】:
我现在有一种奇怪的情况。基本上,我的公司目前正在将指向我们软件最新版本的链接放在门后,但是一旦用户登录,他们就可以将链接分发到这些版本。 30 天免费试用,下落不明。
所以我想阻止访问 URL /downloads/file.extension,甚至完全阻止 /downloads/,除非引用 URL 是 allowed_domain.com。
我会喜欢使用.htaccess,但是我们使用的托管服务提供商(WP Engine)在 Nginx 上设置了他们的服务器。不仅如此,我还必须将我的 Nginx 代码发送到 WP Engine 让他们为我实现,这是不切实际的。
因此,我正在寻找仅 PHP 的解决方案,或者我显然没有注意到的 WordPress 插件。
是的,我知道这对我的公司来说是一种非常愚蠢的存储重要文件的方法,但我现在需要解决这个问题,直到他们想出更好的方法。
【问题讨论】:
-
是的,我知道我应该在
public_html之外托管这些类型的文件,并利用 PHP 来发送它们,但是 WP Engine 并没有让我访问真正的根目录。 -
我相信 Wordpress 只会为不存在的文件重写 URI。因此,如果文件存在于面向公众的目录中,我认为您无法采取任何措施来阻止仅使用 PHP 进行下载。
-
@KodosJohnson 我不想重写 URL。我只是想重定向,除非它们来自特定的 URL。
-
我知道。我想说的是,您编写的任何 PHP 代码都无法拦截对文件的请求。如果文件是公开的,那么它就是公开的,并且您用 PHP 编写的任何内容都无法阻止它。
-
因此,阻止访问这些文件的唯一方法是通过 nginx 代码或将它们放在您已经提到的 public_html 之外。只是出于好奇,为什么将您的 nginx 代码发送给托管服务提供商是不切实际的?您只需进行一项更改,即可阻止通过 PHP 代码访问任何文件。