Šajā rakstā mēs īsumā paskaidrosim Nginx atrašanās vietas regex piemērus.
Priekšnoteikumi
Šajā rakstā tiek pieņemts, ka Nginx jau ir instalēts jūsu sistēmā.
Nginx atrašanās vietas direktīvas sintakse
Nginx konfigurācijas failā atrašanās vietu direktorijai ir pieejama šāda sintakse:
atrašanās vieta [modificētājs] [URL-match]…
Nginx atrašanās vietas bloku var pievienot servera blokā vai citā vietā ar dažiem iepriekš definētiem nosacījumiem. Iepriekšminētajā sintaksē modifikators ir izvēles parametrs. Modifikatoru klātbūtne atrašanās vietas blokā ļauj Nginx rīkoties ar URL citā secībā. Šeit ir minēti daži modifikatori ar dažiem piemēriem:
1. Visu pieprasījumu saskaņošana ar Nginx atrašanās vietas bloku
'/' Tiek izmantots prefiksa atrašanās vietai, lai tā atbilstu visiem pieprasījumiem. Tomēr, ja pēc tam netiek meklētas labākās atbilstības, tas tiks izmantots kā pēdējais rezultāts.
Piemērs
Šajā atrašanās vietas blokā tas atbildīs visiem pieprasījumiem:
2. Saskaņot direktoriju, izmantojot atrašanās vietas bloku Nginx
Šis piemērs atbilst visiem pieprasījumiem atrašanās vietas blokā, kas sākas ar / images /. Līdz ar to meklējot precīzāku saskaņotu bloku pret pieprasīto URI. Tomēr, ja Nginx nemeklē konkrētāku atbilstību, atrašanās vietas bloks tiks izvēlēts tieši.
Piemērs
Tālāk sniegtajā piemērā Nginx atbilst visiem pieprasījumiem atrašanās vietas blokā, kas sākas ar / images /.
3. Precīzi saskaņojiet, izmantojot atrašanās vietas pārveidotāju '=' (vienāds ar)
Modifikators '=' vienādības zīme tiek izmantota, ja precīzi saskaņojat atrašanās vietas bloku ar pieprasīto URI.
Piemērs
Nginx vispirms mēģina saskaņot visprecīzākās prefiksu atrašanās vietas. Tomēr šajā piemērā atrašanās vietas bloka modifikators '=' precīzi atbildīs pieprasītajam prefiksa ceļam un pēc tam pārstās meklēt labākas atbilstības.
…
Iepriekš minētajā atrašanās vietas bloķēšanas piemērā atrašanās vietas pārveidotājs '=' precīzi sakritīs ar URL domēnu.com / imgs. URL “mydomain / imgs / index”.html 'vai' mydomain / imgs / 'neatbilst nosacījumam.
4. Lielo un mazo burtu reģistrattiecība, izmantojot modifikatoru Tilda (~)
Modifikators tilda (~) veic reģistru reģistrjutīgas regulārās izteiksmes atbilstības meklēšanu pret pieprasīto URI un nepārtraukti meklē labāku atbilstību.
Piemērs
~ Modifikators šajā piemērā veic reģistru un regulāru izteiksmi (regulārās izteiksmes) atbilstību atrašanās vietas blokā:
…
5. Lieta nejutīga atbilstība, izmantojot tilda (~ *) modifikatoru
Tildes zīme ar zvaigznītes (~ *) modifikatoru atbilst jebkuram (neņemot vērā reģistru) pieprasījumu nākamajā atrašanās vietas blokā, kas beidzas ar noteiktu faila formātu, piemēram, failu, kas beidzas ar png, gif, ico, jpeg, jpg, css vai js. Tomēr visus pieprasījumus, kas tiek sūtīti uz / imgs / mapi, izklaidēs iepriekšējais atrašanās vietas bloks.
Piemērs
Šajā atrašanās vietas blokā tas sakritīs ar visiem reģistrjutīgajiem failu tipiem.
…
6. Caret-Tilde Sign (^ ~) modifikators RegEx Match
Modifikators caret-tilda (^ ~) tiek izmantots, lai veiktu reģistrjutīgas regulārās izteiksmes atbilstību pieprasītajam URL. Tāpēc, ja atbilstošais URI tiks saskaņots mapēs / imgs vai / imgs / pico.png, tā pārstāj meklēt, lai atrastu labāku atbilstību.
atrašanās vieta ^ ~ / imgs…
Secinājums
Mēs ar regex esam apsprieduši dažus piemērus un svarīgu informāciju par Nginx atrašanās vietas direktīvu. Šajā rakstā mēs pieminējām arī modifikatoru izmantošanu ar piemēriem. Es ceru, ka šis raksts palīdzēs jums izprast atrašanās vietas bloku galveno koncepciju NGINX. Paldies!