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]
|
||||
|
||||
# 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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user