2014-09-29 40 views
1

在问我的问题之前,我想说我没有在Apache服务器的知识,因此我不知道是否可行我会问。允许IP地址动态使用.htaccess和PHP

在我的服务器上有一个名为admin的文件夹。目前,如下图所示的访问限制使用的.htaccess只有3个ip_addresses:

Order Deny,Allow 
Deny from all 
Allow from xx.xxx.xxx.xxx xx.xxx.xxx.xxx xx.xxx.xxx.xxx 

现在我想问你,如果它可以添加/动态使用PHP更新ip_addresses,包括创建的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_addressess?

回答

1

理论上你可以通过某种脚本来做到这一点。一个想法可能是创建某种页面,您必须经过身份验证才能运行。该脚本会抓住你的IP,并将其插入到.htaccess文件中。

虽然如果你打算这样做,你可以删除ip限制,而是实现一个密码认证方案,因为这基本上就是在那个时候。

+0

嗨Elshar,谢谢你的回答。我不知道如何使用PHP在.htaccess文件中传递IP地址。你有没有解释如何进行的例子或链接?谢谢 – user3607990 2014-09-29 14:55:52

0

这一切的最重要的缺点是你需要PHP用户(这是你的网络用户)有足够的权利来写你的.htaccess文件。通常这是不允许的,否则网络用户可能会妥协。

我可以想象,运行一个crontab来做到这一点。

您让PHP创建一个虚拟.htaccess.php文件,并且每当crontab运行时,它都会读取该.htaccess.php文件并将其移至.htaccess。由于crontab比你的php(又名web用户)拥有更多的权利 - 这应该是有效的。

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