У меня есть один файл, который должен быть доступен только через метод POST.
/var/www/folder/index.php
Корень документа находится /var/www/
и index.php
вложен в папку.
Версия Apache: 2.4.4.
Мои конфигурации следующие:
<Directory "/var/www/folder">
<Files "index.php">
order deny,allow
Allow from all
<LimitExcept POST>
Deny from all
</LimitExcept>
</Files>
</Directory>
Я захожу на свой сервер, 127.0.0.1/folder
но могу получить и отправить файл, как обычно.
Я также попытался order allow,deny
изменить порядок , требуют, ограничить, исключить и ограничить.
Как можно разрешить обработку запросов POST только одним файлом в папке?
apache-2.2
httpd.conf
http-headers
Дэвид Чен
источник
источник
Order
,Allow
ИDeny
семейство директив контроля доступа устарели в пользу mod_authz_host .На самом деле это может быть причиной того, что ваша существующая конфигурация не работает, так как любые конфликтующие
Require
директивы будут иметь приоритет над вашей конфигурацией (которая все еще поддерживается посредством mod_access_compat , но эти директивы будут удалены в будущей версии).Поскольку вы используете семейство 2.4, вам также следует использовать новые директивы стиля. Я проверил приведенную ниже конфигурацию на 2.4.4, и она работает как нужно:
Замечание Джека о том, что вы можете использовать
Require method
директиву, также является правильным и, возможно, более 2,4-подобным способом сделать это.источник
Условие перезаписи было бы действительно более эффективным, но менее безопасным из-за использования Regex, что иногда бывает сложно.
источник