![Ограничить доступ в зависимости от переменной среды](https://rvso.com/image/668769/%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B8%D1%82%D1%8C%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%B2%20%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8%20%D0%BE%D1%82%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9%20%D1%81%D1%80%D0%B5%D0%B4%D1%8B.png)
Попытка проявить смекалку и разрешить доступ в зависимости от переменной окружения. Похоже, это не работает (ошибок нет, выражение всегда ложно).
Что я пробовал:
<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>
Ожидаемое поведение:
Если ENVIRONMENT_STATE
установлено значение 'dev'
, то ограничить любой доступ, за исключением указанного IP-адреса.
Источники:
http://httpd.apache.org/docs/2.4/mod/core.html#else
https://httpd.apache.org/docs/2.4/expr.html
решение1
Я бы использовал файл .htaccess для ограничения IP. Причины следующие:
- Вы можете управлять исходным кодом.
- При добавлении или удалении IP-адресов перезагрузка сервера не требуется.
- Если вы случайно заблокировали себя, вы всегда можете войти по FTP и отредактировать файл, чтобы восстановить доступ.
Видеть этовопросдля примера.