Beschränken Sie den Zugriff abhängig von der Umgebungsvariable

Beschränken Sie den Zugriff abhängig von der Umgebungsvariable

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_STATEauf 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.

verwandte Informationen