使用.htaccess和php动态允许ip地址

使用.htaccess和php动态允许ip地址,php,apache,Php,Apache,在问我的问题之前,我想声明我不了解apache服务器,因此我不知道我要问的问题是否可行 在我的服务器上有一个名为admin的文件夹。目前,其访问仅限于使用.htaccess的3个ip_地址,如下所示: Order Deny,Allow Deny from all Allow from xx.xxx.xxx.xxx xx.xxx.xxx.xxx xx.xxx.xxx.xxx 现在我想问一下,是否可以使用php动态添加/更新ip_地址,并将php创建的文件包含在.htaccess中 比如说 &

在问我的问题之前,我想声明我不了解apache服务器,因此我不知道我要问的问题是否可行

在我的服务器上有一个名为admin的文件夹。目前,其访问仅限于使用.htaccess的3个ip_地址,如下所示:

Order Deny,Allow
Deny from all
Allow from xx.xxx.xxx.xxx  xx.xxx.xxx.xxx  xx.xxx.xxx.xxx
现在我想问一下,是否可以使用php动态添加/更新ip_地址,并将php创建的文件包含在.htaccess中

比如说

<form action="#" method="post">
<input type="text" name="ip_one" />
<input type="text" name="ip_two" />
<input type="text" name="ip_three" />
</form>

file.php

<?php
$ip_one = $_POST['ip_one'];
$ip_two = $_POST['ip_two'];
$ip_three = $_POST['ip_three'];

//AND THEN REPLACE THE EXISTING IP ADDRESSES IN THE .HTACCESS WITH THE THRE VALUES ABOVE


?>


毫无疑问,这不是达到我想要的目的的途径。有没有一种方法可以动态管理ip地址?

理论上可以通过某种脚本来实现。一个想法可能是制作某种页面,您必须对其进行身份验证才能运行。脚本将获取您的ip,并将其插入.htaccess文件


尽管要这样做,您可以取消ip限制,转而实现密码身份验证方案,因为这基本上就是当时的情况。

最重要的缺点是,您需要PHP用户(即web用户)拥有足够的权限来写入.htaccess文件。通常这是不允许的,否则web用户可能会破坏这一点

我可以想象运行crontab来实现这一点

您可以让PHP创建一个伪.htaccess.PHP,每当crontab运行时,它都会拾取该.htaccess.PHP文件并将其移动到.htaccess。因为crontab拥有的权限比php(又名web用户)多,所以应该可以这样做


仍然-确保您的php脚本不能创建一个.htaccess,它允许人们做比您想要的更多的事情。

Hi Elshar,谢谢您的回答。我不知道如何使用php在.htaccess文件中传递ip地址。您是否有一个示例或链接来解释如何继续?谢谢