Меня что-то беспокоит после того, как мой хостинг-провайдер перешел с Apache 2.2 на Apache 2.4.
У меня были следующие правила Apache 2.2 в моем .htaccess
order allow,deny
deny from domain.tld
deny from 1.2.3.4
allow from all
Эти правила достигли 500 с выходом Apache 2.4, поэтому я изучил руководство Apache 2.4 и интернет и, наконец, пришел к выводу:
<RequireAll>
Require all granted
Require not host domain.tld
Require not ip 1.2.3.4
</RequireAll>
Я проверил это со своим собственным IP-адресом и доменом, и это работает. Apache выдает ошибку 403. Однако в журнале ошибок Apache появляется сообщение
<Thu Dec 06 20:16:51.641853 2018> <authz_host:error> <pid 1347506:tid 140612011235072> <client 86.90.6.41:42035> AH01753: access check of 'domain.tld' to /index.html failed, reason: unable to get the remote host name
Что там написано? Кроме того, поскольку у меня есть еще одно правило 'Require not host' в моем htaccess, он повторяет эту ошибку 'AH017053' для каждой записи в моем htaccess. Он делает это для каждого файла, запрашиваемого посетителем, поэтому после index.html он повторяет эту ошибку для 'index.css' и т. д.
Я хотел бы, чтобы эта ошибка исчезла, но я не знаю, как это сделать. Также интересно, если Apache все еще блокирует мой собственный IP-адрес и доменное имя в тестовой ситуации, что эта ошибка пытается сказать?
я прочелhttps://httpd.apache.org/docs/2.4/mod/mod_authz_host.htmlи я не уверен, когда Apache жалуется на «AH017053», разве я не должен где-то это посмотреть?
решение1
Я нашел ответ здесьhttps://httpd.apache.org/docs/2.4/mod/mod_authz_host.html
Вместо
Require not host domain.tld
Он прекратит попытки двойного обратного поиска с помощью
Require not forward-dns domain.tld
Причина этого объяснена здесь.https://httpd.apache.org/docs/2.4/mod/core.html#hostnamelookups