Назад | Перейти на главную страницу

Ограничить доступ в зависимости от переменной среды

Попытка быть умным и разрешить доступ в зависимости от переменной окружения. Кажется, не работает (ошибок нет, выражение всегда ложное).


Что пробовал:

<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

Я бы использовал файл .htaccess для ограничений IP. Причины:

  • Вы можете управлять исходным кодом.
  • При добавлении или удалении IP-адресов перезапуск сервера не требуется.
  • Если вы случайно заблокируете себя, вы всегда можете войти по FTP и отредактировать файл, чтобы восстановить доступ.

Посмотри это вопрос для примера.