From 9eddf5d9cd237c26c95effd62a83e179beb9f9e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Sat, 25 Jul 2026 17:42:12 +0400 Subject: [PATCH] fix: prevent infinite redirect loop in nginx php block --- conf/nginx.conf.sample | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/conf/nginx.conf.sample b/conf/nginx.conf.sample index 61a7276..d92edbc 100644 --- a/conf/nginx.conf.sample +++ b/conf/nginx.conf.sample @@ -62,13 +62,16 @@ server { rewrite ^/([^.]+)$ /$1.php last; } - # Rediriger les URLs avec .php vers les URLs sans extension - location ~ ^/(.+)\.php$ { - return 301 /$1; - } - # Traitement des fichiers PHP + # $request_uri est la requête ORIGINALE du client (elle ne change pas + # lors des réécritures internes) : si elle contient .php, on redirige + # proprement vers l'URL sans extension ; sinon (réécriture interne + # @rewrite ou directive index), on sert le PHP. Cela évite la boucle + # infinie /index → /index.php → /index → … location ~ \.php$ { + if ($request_uri ~ "^(/[^?]+)\.php") { + return 301 $1$is_args$args; + } include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # Adaptez selon votre version PHP fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;