Ich versuche, clever vorzugehen und den Zugriff abhängig von einer Umgebungsvariable zuzulassen. Das scheint nicht zu funktionieren (keine Fehler, der Ausdruck ist immer falsch).
Was ich versucht habe:
<VirtualHost *:80>
...
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
<If "reqenv('ENVIRONMENT_STATE') == 'dev'">
allow from 1.22.333.0/24
deny from all
</If>
<Else>
allow from all
</Else>
</Directory>
</VirtualHost>
Erwartetes Verhalten:
Wenn ENVIRONMENT_STATE
auf gesetzt ist 'dev'
, dann wird der gesamte Zugriff außer von der angegebenen IP-Adresse beschränkt.
Quellen:
http://httpd.apache.org/docs/2.4/mod/core.html#else
https://httpd.apache.org/docs/2.4/expr.html
Antwort1
Ich würde die .htaccess-Datei für IP-Einschränkungen verwenden. Die Gründe dafür sind:
- Sie können die Quelle verwalten.
- Beim Hinzufügen oder Entfernen von IP-Adressen ist kein Serverneustart erforderlich.
- Wenn Sie sich versehentlich ausgesperrt haben, können Sie sich jederzeit per FTP anmelden und die Datei bearbeiten, um den Zugriff wiederherzustellen.
Sieh dir das anFragezum Beispiel.