.htaccess Запретить доступ, но разрешить с конкретного ip -- Настройка при неправильно сконфигурированном nginx
Primary tabs
Как лучше
Вообще в нормально режиме надо как-то так, но если у вас до apache стоит nginx и такая конфигурация приводит к
403 Forbidden
(даже для разрешённого ip), значит скорее всего неправильно сконфигурирован параметр REMOTE_ADDR веб-сервера nginx.
Дело в том, что:
апач из для Allow from берет ip из REMOTE_ADDR
А потому в этот параметр должен попадать реальный адрес клиента, а не ip сервера (напр. балансера).
Решение при неправильной конфигурации REMOTE_ADDR
Но даже для неправильного настроенного REMOTE_ADDR можно запретить доступ для всех ip, кроме конкретного используя такой подход:
Пусть у нас есть ip, с которого нужно разрешить доступ:
185.111.62.62
Тогда в .htaccess нужно написать (такой хак):
Order Deny,Allow SetEnvIf X-Forwarded-For ^185\.111\.62\.62 proxy_env Deny from all Allow from env=proxy_env # запрещаем отовсюду кроме 185.111.62.62
Спасибо за пример Е.И.
- Log in to post comments
- 2197 reads