Я использую nginx и хочу ограничить доступ к каталогу для всех, кроме себя. Я хочу получить доступ к скриптам php в / ограничено. Я пробовал пока кое-что. Если я помню, это работает, чтобы заблокировать доступ ко всем, кроме разрешенного IP, но все скрипты загружаются, а не обрабатываются сейчас.
location ~ /restricted {
allow 1.2.3.4;
deny all;
}
Вам понадобится второй (я предпочитаю вложенный) php-блок, так как вы хотите, чтобы эти php-файлы обрабатывались по-другому. Кроме того, предполагая, что / ограниченный должен быть префиксом uri, а не просто чем-то, что появляется где-либо в uri, вам нужен другой тип местоположения:
# This handles everything that starts with /restricted,
# and no regex locations will override it
location ^~ /restricted {
allow 1.2.3.4;
deny all;
# This will inherit the allow/deny from the outer location
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass backend;
}
}