2011-03-08 23 views

cevap

205

: Tam olarak eşleşen "=" öneki ile

  1. Direktifleri. Bulunursa arama durur.
  2. Geleneksel dizelerle kalan tüm yönergeler. Bu eşleşme "^ ~" önekini kullandıysa, arama durur.
  3. Düzenli ifadeler, yapılandırma dosyasında tanımlandıkları sırayla.
  4. # 3 bir eşleşme sağladıysa, bu sonuç kullanılır. Aksi takdirde # 2'den maç kullanılır. belgelerinden

Örnek:

location =/{ 
    # matches the query/only. 
    [ configuration A ] 
} 
location/{ 
    # matches any query, since all queries begin with /, but regular 
    # expressions and any longer conventional blocks will be 
    # matched first. 
    [ configuration B ] 
} 
location /documents/ { 
    # matches any query beginning with /documents/ and continues searching, 
    # so regular expressions will be checked. This will be matched only if 
    # regular expressions don't find a match. 
    [ configuration C ] 
} 
location ^~ /images/ { 
    # matches any query beginning with /images/ and halts searching, 
    # so regular expressions will not be checked. 
    [ configuration D ] 
} 
location ~* \.(gif|jpg|jpeg)$ { 
    # matches any request ending in gif, jpg, or jpeg. However, all 
    # requests to the /images/ directory will be handled by 
    # Configuration D. 
    [ configuration E ] 
} 

hala kafa karıştırıcı ise, here's a longer explanation.

+0

@brablc sayesinde, sabit. –

+4

ile size yardımcı olabilir:) https://github.com/detailyang/nginx-location-match-visible – user2228392

+3

Her ikisi de '/' ve '/ documents /' kurallarının '/ documents/index.html' ile eşleştiğini unutmayın. ama en uzun kural olduğu için ikinci kural öncelik kazanır. –

11

Bu sırayla tetiklenir.

  1. = (tam olarak): yer =/yol
  2. ^~ (ileri maç): Yer^~/yol
  3. ~ (normal ifade harf duyarlı): Yer ~/yol/
  4. ~ * (düzenli ifade harf duyarsız): konum ~ * (jpg | png | bmp)
  5. /:. konum/yol