server{
location = /admin { #its good to block the admin alone too
allow 127.0.0.1;
deny all;i
try_files $uri $uri/ /index.php;
}
location ^~ /admin/ { #block anything beggining with /admin/
allow 127.0.0.1;
deny all;
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#fastcgi_index index.php;
# With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm: fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
Эта конфигурация должна разрешать только локальные подключения и запрещать все остальные на любом административном URL.
С другой стороны, если вы когда-либо будете заблокированы с вашего компьютера, это может быть связано с тем, что вы делаетезапрашивать через ваш общедоступный ip, а не напрямую через localhost. (Например: если вы делаете перенаправление через Интернет, ваш ip будет ip сервера, а не localhost).
Это должно сработать, если это не так.т, может быть есть другое место, которое ловит соединение, а не это.Прокомментируйте, работает ли он или что не работает.
РЕДАКТИРОВАТЬ:
Источник, чтобы понять это: https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms
^ ~ укажет, что это лучшее "~msgstr "в конфигурации это будет первая проверка после местоположения" = ".Это должно установить приоритет вашего / admin / местоположения над вашим местоположением .php.
Это должно работать.(наконец-то: D)