Я написал это, чтобы предотвратить доступ к каталогу "download", но с IP 1.2.3.4.
location ~ /folder/download {
allow 1.2.3.4;
deny all;
return 403;
}
Однако каталог «папка» тоже блокируется, и я этого не хотел.
Что я делаю не так?
ОБНОВИТЬ:
Вот и весь настоящий конфиг:
server {
server_name www.domain.com;
rewrite ^ $scheme://domain.com$request_uri? permanent;
}
server {
server_name atpc.info;
access_log /var/log/nginx/atpc.info.access;
error_log /var/log/nginx/atpc.info.error;
root /var/www/atpc.info;
location ^~ folder/download {
allow 1.2.3.4;
deny all;
}
location ^~ folder/includes {
allow 1.2.3.4;
deny all;
}
location ^~ folder/mythings {
allow 1.2.3.4;
deny all;
}
location ^~ folder/functions {
allow 1.2.3.4;
deny all;
}
location / { index index.htm index.php; }
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location = /favicon.ico {
return 204;
access_log off;
log_not_found off;
}
location = /robots.txt { allow all; log_not_found off; access_log off; }
location ~ /\. { deny all; access_log off; log_not_found off; }
}
Спасибо.
Вероятно, вам нужно местоположение ^ ~ вместо местоположения ~, поскольку первое - это совпадение префикса, которое не позволяет переопределить регулярное выражение, а второе - местоположение регулярного выражения. Также удалите возврат 403; Директив allow и deny достаточно для вашего приложения, и возврат всегда будет оцениваться, что означает, что каждый получит 403.