fix(server): exclude /ajax/ from .php redirect to preserve POST
This commit is contained in:
@@ -40,7 +40,9 @@ RewriteCond %{REQUEST_FILENAME} !-f
|
|||||||
RewriteRule ^([^\.]+)$ $1.php [NC,L]
|
RewriteRule ^([^\.]+)$ $1.php [NC,L]
|
||||||
|
|
||||||
# Rediriger les URLs avec .php vers les URLs sans extension
|
# 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 %{THE_REQUEST} /([^.]+)\.php [NC]
|
||||||
|
RewriteCond %{REQUEST_URI} !^/ajax/ [NC]
|
||||||
RewriteRule ^ /%1 [NC,L,R=301]
|
RewriteRule ^ /%1 [NC,L,R=301]
|
||||||
|
|
||||||
# Pour accéder à page.php via /page
|
# Pour accéder à page.php via /page
|
||||||
|
|||||||
@@ -69,6 +69,11 @@ server {
|
|||||||
# @rewrite ou directive index), on sert le PHP. Cela évite la boucle
|
# @rewrite ou directive index), on sert le PHP. Cela évite la boucle
|
||||||
# infinie /index → /index.php → /index → …
|
# infinie /index → /index.php → /index → …
|
||||||
location ~ \.php$ {
|
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") {
|
if ($request_uri ~ "^(/[^?]+)\.php") {
|
||||||
return 301 $1$is_args$args;
|
return 301 $1$is_args$args;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user