Могу ли я отказать в nginx на основе URI и IP?
В основном у меня есть WordPress-сайт (с интернет-магазином и социальным логином). Я отказал в доступе к wp-login.php по IP-адресу. Проблема в том, что социальный логин использует этот файл wp-login. Поэтому мне интересно, возможно ли:
- заблокировать почти все запросы к wp-login.php по ip-адресу и разрешить по ip только конкретные запросы. Имея в виду wp-login.php
разрешить 1 ip запретить всеwp-login.php?action=lostpassword
разрешить 1 ip запретить всеwp-login.php?action=rp&key=.*?&login=.*
разрешить 1 ip запретить все
,
,wp-login.php?ywsl_social=google
разрешить все ipwp-login.php?ywsl_social=twitter
разрешить все ip
Что-то вроде этого:
location = /wp-login.php {
if ($query_string = "ywsl_social=google|ywsl_social=twitter")
{
allow all;
fastcgi_pass unix:/var/sockets/sock.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTPS on;
}
else {
allow 1.1.1.1;
deny all;
fastcgi_pass unix:/var/sockets/sock.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTPS on;
}