Nginx config if e try_files

2

Eu quero verificar a string de consulta na minha configuração. Se coincide com carregar alguma página. Se não for correspondido, redirecione-o. Então eu escrevo config assim:

...
location / {
    if ($args ~ "api_url") {    
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        index  index.html;
        try_files $uri /page_cache/$uri /page_cache/$uri/ /page_cache/$uri.html @puma;
        break;
    }
    rewrite ^ http://domain.com permanent;
}
...

Mas isso não funciona porque não consigo usar todas essas diretivas dentro de

.

Eu tento usar apenas um break no if, mas também não funciona.

Como eu posso fazer isso?

Obrigado.

    
por Falcon 03.03.2014 / 23:20

1 resposta

2

Você só precisa inverter a lógica no seu if: (Eu também removerei as diretivas de proxy, já que elas não têm efeito aqui)

location / {
  if ($arg_api_url != '') {
    return 301 http://domain.com/;
  }

  try_files $uri /page_cache/$uri /page_cache/$uri/ /page_cache/$uri.html @puma;
}
    
por 04.03.2014 / 16:49

Tags