Вечер потратил на эту проблему и не нашел как ее решить / обойти :-(
У меня есть файл .htaccess в mydomain.com/admin/ со следующим:
<Files ~ "[^index]\.php$">
Order Allow,Deny
Deny from All
</Files>
Цель этого .htaccess - защитить все включенные файлы, например, inc / config.php, от прямого вызова.
Моя проблема в том, что я хочу сделать исключение для php-файла уведомлений, используемого PayPal. Другими словами, у меня есть файл "mydomain.com/admin/paypal/notify.php", и я хочу разрешить paypal.com его выполнить.
Я пробовал десятую часть вещей, например, добавление авторизации "Файлы" в .htaccess
<Files /admin/paypal/notify.php>
Order Deny,Allow
Deny from all
Allow from paypal.com
</Files>
Но безуспешно :-(
... как будто
<Files ~ "[^index]\.php$">
было единственным соблюдаемым правилом.
<Файлы имя файла> применяется только к имени файла, вы не можете использовать с ним путь.
В Документация по директивам файлов состояния:
Директивы, данные в этом разделе, будут применены к любому объекту с базовым именем (последний компонент имени файла), совпадающим с указанным именем файла.
Возможное решение:
В каталоге админ / PayPal, создайте .htaccess с помощью:
<Files notify.php>
Order Deny,Allow
Deny from All
Allow from paypal.com
</Files>
Редактировать: поменял местами Запретить и Разрешить.
Имейте в виду, что для разрешения от paypal.com потребуется, чтобы полное доменное имя IP-адреса, попадающего на ваш сайт, было в точности paypal.com при просмотре моих журналов, уведомления приходят с notify.paypal.com (последние три запроса поступили с 66.211. 170.66) У меня их не было за последние пять дней, поэтому я не могу подтвердить, все ли они получены из одного блока IP.