diff --git a/conf/.htaccess.sample b/conf/.htaccess.sample index 46b1bb9..a228ecc 100644 --- a/conf/.htaccess.sample +++ b/conf/.htaccess.sample @@ -40,7 +40,9 @@ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] # Rediriger les URLs avec .php vers les URLs sans extension +# Sauf /ajax/ : un 301 transformerait le POST en GET et ferait perdre le token CSRF. RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] +RewriteCond %{REQUEST_URI} !^/ajax/ [NC] RewriteRule ^ /%1 [NC,L,R=301] # Pour accéder à page.php via /page diff --git a/conf/nginx.conf.sample b/conf/nginx.conf.sample index d92edbc..53e218f 100644 --- a/conf/nginx.conf.sample +++ b/conf/nginx.conf.sample @@ -69,6 +69,11 @@ server { # @rewrite ou directive index), on sert le PHP. Cela évite la boucle # infinie /index → /index.php → /index → … location ~ \.php$ { + # Ne pas rediriger les endpoints AJAX : un 301 transformerait le POST + # en GET et ferait perdre le token CSRF. + if ($request_uri ~ "^/ajax/") { + break; + } if ($request_uri ~ "^(/[^?]+)\.php") { return 301 $1$is_args$args; }