Puncte:0

nginx: Bloc de locație pentru toate URI-urile fără extensie

drapel cn

Știu cum să procesez URI-uri care se potrivesc cu un anumit model.

Exemplu

Următoarea configurație va adăuga un antet http Cache-Control la toate fișierele care se termină cu .css sau .js:

locație ~* \.(css|js)$ {
  add_header Cache-Control „public, max-age=31536000, imutable” întotdeauna;
}

Întrebare

Cum pot procesa toate URI-urile fără extensie?

Ceva asemănător cu www.domeniul.tld/articolul-meu.

(Folosesc nginx ca proxy invers și adaug extensia .html în .htaccess.)

Richard Smith avatar
drapel jp
Deci, elementul calea finală nu conține un `.`, de exemplu: `location ~ /[^./]+$`
Puncte:2
drapel us

Modul obișnuit este:

Locație / {
    # Orice altceva
}

locație ~* \.(?:css|js)$ {
    add_header Cache-Control „public, max-age=31536000, imutable” întotdeauna;
}

documentația directivei de locație nginx explică în detaliu modul în care nginx evaluează diferit Locație blocuri.

Sr. Schneider avatar
drapel cn
În exemplul de mai sus `\.(?:css|js)$` este același cu `\.(css|js)$`?
drapel us
`?:` îi spune motorului de expresii regulate să nu capteze partea în variabilă. Acest lucru face ca expresia să fie puțin mai rapidă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.