PHP-只允许从一个域访问

PHP-只允许从一个域访问,php,wordpress,nginx,Php,Wordpress,Nginx,我现在有一种奇怪的情况。基本上,我的公司目前正在把我们软件最新版本的链接放在一个门后,但是一旦用户登录,他们就可以将链接分发到这些版本。免费30天审判,下落不明 因此,我想阻止访问URL/downloads/file.extension,甚至完全阻止访问/downloads/,除非引用的URL是允许的\u domain.com 我很想使用.htaccess,但是我们使用的主机提供商(WP引擎)在Nginx上安装了他们的服务器。不仅如此,我还必须将我的Nginx代码发送到WP引擎,让它们为我实现,

我现在有一种奇怪的情况。基本上,我的公司目前正在把我们软件最新版本的链接放在一个门后,但是一旦用户登录,他们就可以将链接分发到这些版本。免费30天审判,下落不明

因此,我想阻止访问URL
/downloads/file.extension
,甚至完全阻止访问
/downloads/
,除非引用的URL是
允许的\u domain.com

我很想使用
.htaccess
,但是我们使用的主机提供商(WP引擎)在Nginx上安装了他们的服务器。不仅如此,我还必须将我的Nginx代码发送到WP引擎,让它们为我实现,这是不实际的

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


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

你可以使用我正在使用的这种方法。 享受

您需要列出这些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();

} ?>


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

是的,我知道我应该在
public\u html
之外托管这些类型的文件,并利用PHP发送它们,但WP引擎不允许我访问真正的根目录。我相信Wordpress只会为不存在的文件重写URI。因此,如果这些文件存在于面向公众的目录中,我认为您无法阻止仅使用PHP进行下载。@KodosJohnson我不想重新编写URL。我只是想重定向,除非它们来自特定的URL。我知道。我想说的是,您编写的任何PHP代码都无法拦截对文件的请求。如果文件是公共的,那么它就是公共的,你用PHP写的任何东西都不能阻止它。所以阻止访问这些文件的唯一方法是通过nginx代码,或者把它们放在你已经提到的公共html之外。出于好奇,为什么将nginx代码发送给托管提供商并不实用?您只需做一个更改,就可以阻止通过PHP代码访问任何文件。谢谢您的快速回答。这看起来或多或少是我想要的,但我是一个前端人员,所以在我可以测试你的代码之前,我有一些非常基本的问题:我可以把这个和我所有其他的PHP代码放在PHP文件中吗?@JesseRogers,基本上你可以把这个文件放进index.PHP。因此,当用户触发
www.yourdomain.com/index.php
时,它将检查用户IP地址,然后重定向到您的php。也许您可以将php命名为其他名称,如
www.yourdomain.com/main.php
,这样只有具有这些IP的用户才会重定向,其余的不会。如果有帮助,点击它作为答案:如果/当我能让你的答案生效时,我肯定会给你答案,因为你是第一个回答的。对不起,我只是需要很多关于后端代码的帮助,哈哈。另一个问题-
位置:http://yourdomain.com/index.php
。如果用户不是来自允许的IP,是否会在那里发送?或者这就是我试图保护的URL?@JesseRogers,这是允许的IP。当他们的IP在列表中时,只有他们会被重定向。不在列表中的用户只会看到一个空白页,或者您可以将他们重定向到其他站点。这个脚本充当一个过滤器。这个脚本现在正在做一些事情,但是它将我的整个站点重定向到我在
header()中指定的URL
。如果我把它放在我试图保护的文件夹中的一个PHP文件中,会起作用吗?