ajky
@ajky
Full-stack developer

Почему может не работать Allow from IP в .htaccess ?

Проблема в том, что htaccess не пускает, выдавая 403 ошибку (и не ту что задана в htaccess; хотя если убрать ограничение, то из него). Если добавить в разрешённые адреса IP сервера, то он доступен всем. Код вида:
<Limit GET POST>
	order deny,allow
	deny from all
	allow from мой_айпи
</Limit>


UPD
В логах nginx IP правильный (не сервер).
Если создать php файл, который отобразит IP, то тоже не сервер :/
Стоит ISPmanager (если это что-то меняет).

Ничего не понимаю :/
  • Вопрос задан
  • 5012 просмотров
Решения вопроса 1
ajky
@ajky Автор вопроса
Full-stack developer
Решение оказалось таким(.htaccess):
SetEnvIf Remote_Addr "^xx\.xxx\.xxx\.xxx" realremoteaddr
Order Deny,Allow
Deny from all
allow from env=realremoteaddr

где xx... - нужный IP
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
deMone
@deMone
Техдиректор — tech-director.ru
Вероятно, у вас есть проксирующий сервер (например, nginx), который не сообщает apache реальный IP-адрес клиента. В связи с этим apache считает, что у всех ваших посетителей один и тот же адрес — адрес nginx-а, то есть, по сути, адрес сервера.

Поставьте в apache mod_rpaf, настройте и, скорее всего, ваше решение заработает.

И ещё на всякий случай поменяйте местами deny from all и allow from <ваш ip>, чтобы сначала было разрешение вашего адреса, а потом запрет всем остальным.
Ответ написан
Комментировать
merryjane
@merryjane
Системный администратор
А у Вас apache не за бекендом каким-либо стоит? Если в качестве фронтенда nginx например, то надо настраивать правильную трансляцию адресов в apache. Это делается через модули mod_rpaf или mod_extract_forwarded.
Проверить можно посмотрев в логах apache с каких ip приходят запросы. Если все ip - это адрес фронтенда, то присутствует вышеописанная проблема.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы