Изначально нужно было изменить папку путем редиректов. Код который приведен ниже работает, но необходимо чтобы все файлы в директории /old/ отдавали 404 ошибку, а в директории /files/ все файлы были доступны.
set $domain $host;
# делаем доступными php файлы из /old/
location ~ ^/files/(.*\.php)$ {
root /home/$domain/html/old/$1;
try_files $uri @php;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
}
# остальные файлы из /old/
location ~ ^/files($|/.*) {
root /home/$domain/html/old$1;
}
location @php {
rewrite ^/files/(.*)$ /old/$1 last;
}
Пробовал код ниже, не работает.
location ~ ^/old($|/.*) {
if ($remote_addr != 127.0.0.1) {
return 404;
}
}
Проблему наверняка можно решить проксированием apache, но это самый крайний вариант, т.к лишняя нагрузка на сервер не нужна. Подскажите кто сталкивался с подобными ситуациями, поделитесь опытом, я буду очень благодарен.
Полный серверный конфиг:
server {
server_name "~^www\.(.*)$" ;
return 301 $scheme://$1$request_uri ;
}
server {
listen 8080;
listen 80 default;
server_name _;
set $domain $host;
root /home/$domain/html;
server_name_in_redirect off;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
real_ip_header CF-Connecting-IP;
real_ip_recursive on;
if (!-d /home/$domain/html) {
return 444;
}
location ~ ^/files/(.*\.php)$ {
alias /home/$domain/html/old/$1;
try_files $uri @php;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
}
location ~ ^/files($|/.*) {
alias /home/$domain/html/old$1;
}
location @php {
rewrite ^/files/(.*)$ /old/$1 last;
}
location ~ \.php$ {
if ($request_uri = /index.php) {
rewrite ^ $scheme://$domain? permanent;
}
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
}
}