From bb35617d3e831e06e36a326381a4fee1c85a9931 Mon Sep 17 00:00:00 2001 From: Binnette Date: Fri, 23 Dec 2022 10:40:59 +0100 Subject: [PATCH] Nginx: use alias instead of root --- conf/nginx.conf | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index edfd863..c3ced7e 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,31 +1,36 @@ #sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; -location __PATH__ { +location __PATH__/ { # Path to source alias __FINALPATH__/; - # ~ instruct nginx to perform a case-sensitive regular expression match - - location ~ [^/]\.php(/|$) { - fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; - fastcgi_index index.php; - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - - include fastcgi_params; - fastcgi_param REMOTE_USER $remote_user; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param SCRIPT_FILENAME $request_filename; - } + # index.php is a router, it contains a lot of routes: + # / is serving the home page, /update is refreshing all feeds, etc. + # So we need to rewrite all URLs to give them to the router inside index.php + rewrite ^__PATH__/.*$ __PATH__/index.php?$args; + # feeds favicons and thumbnails are stored in subfolder data location ~ ^__PATH__/((favicons|thumbnails)/.+)$ { try_files __PATH__/data/$1 =404; } - location ~ ^__PATH__/$ { - index index.php; + # statics assets are stored in public folder + location ~ ^__PATH__/(.*\.(js|ico|gif|jpg|png|css|map|asc|txt|svg|xml|webmanifest)).*$ { + try_files __PATH__/public/$1 =404; } - location ~ ^__PATH__/(.+)$ { - try_files __PATH__/public/$1 __PATH__/index.php$is_args$args; + # Regex to match PHP files + location ~ [^/]\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; + + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param REMOTE_USER $remote_user; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param SCRIPT_FILENAME $request_filename; } + + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; }