Localização Nginx try_files corresponde a tudo exceto a raiz

2

Eu tenho um bloco de localização parecido com:

location / {
    index index.php;
    try_files /legacy$uri /legacy$uri/ $bootstrap?$args;
}

Isso funciona, exceto quando eu vou para o link que corresponde a /legacy/ , que não é o que eu quero. Como posso tentar os arquivos, exceto quando $uri é simplesmente uma barra?

    
por Kyle Decot 17.01.2012 / 22:29

1 resposta

4

Adicione outro bloco de localização:

location  = / {
  //do something
}

De acordo com a documentação , o nginx irá:

  1. Corresponda apenas a um bloco de localização
  2. Escolherá o bloco de localização com base no seguinte:
    1. Corresponde usando "="
    2. Strings convencionais usando "^ ~"
    3. Expressões regulares (na ordem listada)
    4. Todas as outras sequências convencionais

Portanto, as solicitações para o nível superior (/) corresponderão ao bloco de localização acima, enquanto todas as outras solicitações corresponderão ao seu bloco de local existente.

    
por 18.01.2012 / 03:05

Tags