nginx reescreve o URL com a string de consulta

4

Eu estive google por um bom tempo e não consigo descobrir isso. Parece simples, e tenho certeza que sim, mas não sou especialista em servidores.

Meu URL é: http://www.example.com/blog/?tag=Word1+Word2

Algumas das tags são uma única palavra (ex: bicicleta), algumas são mais longas (ex: bicicleta de duas rodas).

Eu preciso que este URL seja enviado como: example.com/blog/tag/word1-word2/

Como posso fazer uma reescrita para conseguir isso?

    
por TJ Sherrill 18.12.2015 / 17:40

1 resposta

1

Você deve enviar sua consulta em vez de + para obter o mesmo formato e fazer uma solicitação mais fácil:

location ~ /blog/ {
    if ($args ~* "tag=(.*)") {
        set $w1 $1;
        rewrite .* /blog/tag/$w1/? permanent;
    }
}

Com base no link que eu postei

? no final removerá os parâmetros da string de consulta (de reescrever o documento )

If you specify a ? at the end of a rewrite then Nginx will drop the original $args (arguments)

outra para conseguir isso é definir args para nada:

set $args '';
    
por 18.12.2015 / 19:01

Tags