PHP - 仅允许来自一个域的访问

时间:2017-02-22 01:22:47

标签: php wordpress nginx

我现在有一种奇怪的情况。基本上,我的公司目前正在为门后的最新软件构建链接,但是一旦用户登录,他们就可以将链接分发到构建版本。下午30天免费试用。

所以我想阻止访问网址/downloads/file.extension,甚至完全阻止访问/downloads/,除非引荐网址为allowed_domain.com

使用.htaccess,但我们使用的托管服务提供商(WP引擎)的服务器设置在Nginx上。不仅如此,我还必须将我的Nginx代码发送给WP Engine,以便他们为我实现,这是不切实际的。

因此, 我正在寻找一个PHP ONLY解决方案 ,或者我显然没有注意到的WordPress插件。

是的,我知道这对我公司存储重要文件来说是一种非常愚蠢的方式,但我现在需要解决这个问题,直到他们找到更好的方法。

2 个答案:

答案 0 :(得分:1)

你可以使用我使用它的方法。 享受。

您需要列出这些IP地址。

<?php $allow = array("201.168.0.1", "456.789.123", "789.123.456"); //allowed IPs

if(!in_array($_SERVER['REMOTE_ADDR'], $allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $allow)) {

    header("Location: http://yourdomain.com/index.php"); //redirect

    exit();

} ?>

答案 1 :(得分:1)

不幸的是,你不可能做你所描述的。这是因为当有人试图从站点访问文件时,Web服务器将首先检查它是否存在,如果存在,它将立即提供该文件。它不会通过任何PHP代码。因此,您无法编写任何拦截此请求并阻止它的PHP代码。