Настройка nginx - root в зависимости от запроса
искал решения, пробовал, но не помогает. Я в настройке серверов вообще не волоку.
но вот такая проблема. У меня есть приложение, и сайт. приложение обращается по адресу
https://partners.sospeso.ru/api/
сайт соответственно https://partners.sospeso.ru/
естествено после этих адресов может быть и index.php с параметрами и так же чпу,
типа https://partners.sospeso.ru/api/docs и тому подобное.
root на сервере /home/master/sites/partners.sospeso.ru/htdocs
Из за того, что в приложении чего то поправить нет возможности,
а при доработках сайта приложение ложится, когда меняешь классы, которые в нем используются,
возникла необходимость разнести сайт и бэкенд приложения в разные директории
то есть чтоб сайт открывался из директории
/home/master/sites/partners.sospeso.ru/htdocs
а приложение из директории
/home/master/sites/partners1.sospeso.ru/htdocs
вот мой файл
/etc/nginx/sites-enabled/partners.sospeso.ru
помогите пожалуйста его поправить.
server {
server_name partners.sospeso.ru;
listen 80;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/partners.sospeso.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/partners.sospeso.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
error_log /etc/nginx/logs/error.log;
root /home/master/sites/partners.sospeso.ru/htdocs;
index index.php;
### Redirect http to https
if ( $scheme = 'http' ) {
rewrite ^/(.*) https://$host/$1 permanent;
}
## Let's Encrypt cert
location /.well-known/ {
root /usr/share/nginx/html;
auth_basic off;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/assets/.*\.php$ {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \..*/.*\.php$ {
return 403;
}
# Block access to "hidden" files and directories whose names begin with a
# period. This includes directories used by version control systems such
# as Subversion or Git to store control files.
location ~ (^|/)\. {
return 403;
}
error_page 403 /index.php;
location ~\.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}