2014-09-29 59 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。