From d88a8db9f1ad7200728002affa2c60828e3d9261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Gra=CC=88fenstein?= Date: Sun, 22 Mar 2026 17:19:34 +0100 Subject: [PATCH] fix nginx rewrite loop causing slow page loads and 500 errors Static file locations now return 404 instead of falling through to index.php, and the default location uses a clean rewrite to prevent /index.php/index.php redirect cycles. --- nextcloud/nginx.conf | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/nextcloud/nginx.conf b/nextcloud/nginx.conf index 2f91907..14d77f3 100644 --- a/nextcloud/nginx.conf +++ b/nextcloud/nginx.conf @@ -2,6 +2,10 @@ upstream php-handler { server nextcloud:9000; } +map $uri $nonce_uri { + default ""; +} + server { listen 80; server_name _; @@ -30,22 +34,21 @@ server { location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } - # Serve static files directly + # Serve static files directly — only if file exists on disk location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ { - try_files $uri /index.php$request_uri; + try_files $uri =404; expires 6M; access_log off; } location ~ \.woff2?$ { - try_files $uri /index.php$request_uri; + try_files $uri =404; expires 7d; access_log off; } # PHP handling location ~ \.php(?:$|/) { - rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri; fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; @@ -61,8 +64,8 @@ server { fastcgi_max_temp_file_size 0; } - # Default handler + # Default handler — route everything else through PHP front controller location / { - try_files $uri $uri/ /index.php$request_uri; + rewrite ^ /index.php$request_uri last; } }