שמירה על נתיבים מקודדים במסלול העברת HTTP קיים ב-NGINX
השתמשו ב-request_uri כאשר חוזה ההעברה דורש את הנתיב והשאילתה המקוריים, תוך שמירה על אימות היעד הקיים.
מסלול שנבנה מ-$uri עשוי לשלוח נתיב שונה מזה שהלקוח סיפק. עבור http://service.example/files/a%2Fb?view=raw, הלוכסן המוברח הוא חלק מאותה כתיב מקורי.
| משתנה | ייצוג |
|---|---|
| $uri | ה-URI המנורמל הנוכחי, שעשוי להשתנות במהלך עיבוד פנימי |
| $request_uri | URI הבקשה המקורי, כולל ארגומנטי השאילתה שלו |
בהסדר proxy להעברת HTTP קיים שכבר בוחר ומאמת את סמכות היעד, ניתן לשמור על הנתיב והשאילתה המקוריים באמצעות:
proxy_pass http://$http_host$request_uri;$http_host מספק את סמכות כותרת ה-Host שנבחרה בהסדר זה. שמרו על הגבלות הלקוח של המאזין, מדיניות היעד ותצורת פתרון השמות.
החלפת $uri$is_args$args בביטוי זה משנה את הייצוג הנשלח; הקודם משתמש בנתיב המנורמל ובארגומנטים הנוכחיים. בחרו לפי חוזה נקודת הקצה, במיוחד כאשר מפרידים מוברחים חשובים או שחתימה מכסה את היעד המקורי. לכתיבה מחדש מכוונת של נתיב יש דרישה אחרת.
זה חל על בקשת ה-HTTP הגלויה. מנהרת HTTPS CONNECT נושאת את הבקשה המאוחרת בתוך TLS ודורשת טיפול נתמך משלה.