Быстрое объяснение:
Require local
, как раньше, поскольку Apache всегда видит общедоступный IP-адрес клиента.Require forward-dns
- это то решение, которое я хочу, но оно не дает ожидаемого результата.Пример .htaccess
на сервере (в качестве начального теста):
Require forward-dns mydomain.biz
Пример общедоступного IP-теста из моей домашней сети:
$ host myip.opendns.com resolver1.opendns.com
... myip.opendns.com has address a.b.c.d ...
Найдите доменное имя:
$ host mydomain.biz
mydomain.biz has address a.b.c.d
mydomain.biz mail is handled by 10 mydomain.biz
Однако при доступе к сайту из локальной сети:
[Thu Aug 09 12:59:35.478812 2018] [authz_core:error] [pid 18478:tid 139675020785408] [client a.b.c.d:45860] AH01630: client denied by server configuration: /var/www/blah/blah/
Таким образом, даже если authz_core
получает ожидаемый IP-адрес, его сервер пересылки DNS не возвращает этот IP-адрес. Так почему это? Я делаю что-то явно не так? Может ли почтовый сервер мешать результату?
Надеюсь, кто-то может помочь. Заранее спасибо!
Да, в самом деле. Проблема только в требовании. Я также включил ведение журнала отладки, но вывод, к сожалению, не показывает, как именно проверяется прямой DNS.
убедитесь, что имя хоста, используемое в Require forward-dns
, при тестировании с машины apache (например, попробуйте определить имя и посмотреть, какой адрес он пытается достичь) разрешается в a.b.c.d
Ага! Отличное предложение! ping на машине возвращает локальный IP-адрес, так что это, безусловно, источник проблемы. Наверное, просто нужно отредактировать файл hosts. огромное спасибо!
Если вы удалите директиву
Require ..
, доступен ли сайт?