Păstrarea căilor codificate într-o rută existentă de redirecționare HTTP din NGINX
Folosiți request_uri când contractul de redirecționare are nevoie de calea și interogarea originale, păstrând validarea existentă a destinației.
O rută construită din $uri poate trimite o cale diferită de cea furnizată de client. Pentru http://service.example/files/a%2Fb?view=raw, bara oblică escapadă face parte din acea scriere originală.
| Variabilă | Reprezentare |
|---|---|
| $uri | URI-ul normalizat curent, care se poate schimba în timpul procesării interne |
| $request_uri | URI-ul original al cererii, inclusiv argumentele sale de interogare |
Într-o configurație existentă de proxy de redirecționare HTTP care selectează și validează deja autoritatea destinației, calea și interogarea originale pot fi păstrate cu:
proxy_pass http://$http_host$request_uri;$http_host furnizează autoritatea antetului Host selectată în această configurație. Păstrați restricțiile de client ale listenerului, politica de destinație și configurația de rezolvare a numelor.
Înlocuirea $uri$is_args$args cu această expresie schimbă reprezentarea trimisă; cea anterioară folosește calea normalizată și argumentele curente. Alegeți conform contractului punctului final, mai ales când separatorii escapați contează sau o semnătură acoperă ținta originală. Rescrierea deliberată a căii are o cerință diferită.
Acest lucru se aplică cererii HTTP vizibile. Un tunel HTTPS CONNECT transportă cererea ulterioară în interiorul TLS și necesită propria gestionare acceptată.