2016-04-12 10 views
0

Ich fand eine ziemlich gute Lösung für dieses Problem, aber es fehlt eine Komponente, die ich brauche. Dies liegt in der Nähe:Bedingte Whitelist IPs in Apache mit Anwesenheit oder Abwesenheit von Dateien

# WHITELIST IPS # 
RewriteMap ipslist txt:/path/to/whitelist.txt 
RewriteCond %{REMOTE_ADDR} ^(.*)$ 
RewriteCond ${ipslist:%1|black} ^black$ [NC] 
RewriteRule (.*) - [F] 

die meiste Zeit Ich möchte Zugriff auf die Website beschränken, sondern es wird Zeiten geben, wenn ich viele (Beta-Tester) Zugriff haben soll. Zu diesem Zeitpunkt wird es am einfachsten sein, wenn jemand während des Tests auf die Website zugreift. Was ich wirklich gerne tun würde, ist, die Whitelist bedingt anzuwenden. Wenn die Datei whitelist.txt vorhanden ist, beschränken Sie den Zugriff. Aber wenn es keine Datei gibt, dann lass jemanden auf die Seite zugreifen. Oder finden Sie einen anderen Ansatz.

Ich habe nach etwas ähnlichem gesucht, aber was ich oben habe, ist so nah wie möglich. Kann ich *.*.*.* in der whitelist.txt verwenden, um ALLE IPs zu erlauben, wenn ich muss? Oder gibt es eine bessere Möglichkeit, die IP-Einschränkungslogik "ein- und auszuschalten"?

Antwort

0

Haben Sie in Erwägung gezogen, eine Flagdatei als Bedingung anstelle der IP-Adressdatei zu verwenden?

Etwas wie:

# WHITELIST IPS # 
RewriteMap ipslist txt:/path/to/whitelist.txt 
RewriteCond /path/to/flag_enabled_feature_file -f 
RewriteCond %{REMOTE_ADDR} ^(.*)$ 
RewriteCond ${ipslist:%1|black} ^black$ [NC] 
RewriteRule (.*) - [F]