2016-06-12 63 views
0

我有以下代碼塊,可以讓任何擁有白名單文件「access-list」中的IP的人通過訪問保存.htaccess文件的目錄。我不熟悉這個語法,只是從什麼地方本網站複製的代碼,這個作品非常好:使用.htaccess中的mod_rewrite動態IP白名單。允許所有IP的條件

RewriteEngine on 
RewriteMap hosts-allow txt:/etc/apache2/access-list 
RewriteCond %{REMOTE_ADDR} ^(\d+)\.(\d+)\.(\d+)\.(\d+)$ 
RewriteRule .* - [E=Va:%1,E=Vb:%2,E=Vc:%3,E=Vd:%4] 
RewriteCond ${hosts-allow:%{ENV:Va}.%{ENV:Vb}.%{ENV:Vc}.%{ENV:Vd}|black} ^black$ 
RewriteCond ${hosts-allow:%{ENV:Va}.%{ENV:Vb}.%{ENV:Vc}.*|black} ^black$ 
RewriteCond ${hosts-allow:%{ENV:Va}.%{ENV:Vb}.*.*|black} ^black$ 
RewriteRule ^sorry.html 

訪問文件在以下配置格式的條目:

#allowed IP addresses 

123.123.123.123 - 
109.121.142.109 - 

現在我的問題是有些日子我只想讓任何人通過,即REMOTE_ADDR不必在允許的IP列表中。所以我想修改相同的代碼塊,如果「access-list」txt文件是空白的(完全空白,沒有ip:0個字符),它不應該實際上拒絕所有人,而是允許所有人。

現在,無論何時,只有一個ip或更多,它允許這些IP並拒絕所有其他IP。這沒關係。如果沒有IP(文件是空白的),它會拒絕每個人。我希望這是允許每個人(即空白文件指示,沒有訪問規則強制執行)。

回答

0

您可以嘗試徹底刪除htaccess文件(或者更好的是將其重命名爲htaccess.txt)。它應該允許每個人接觸。然後,如果您需要在特定的時間或日期啓用,您可以創建一個cronjob,將htaccess.txt文件簡單地複製到.htaccess,例如星期六下午3點或其他地方。