Nginx: redirecionamento 301 sem strings de consulta

1

Estou redirecionando /example.php?var=value para /index.htm da seguinte forma:

rewrite /example.php?var=value / permanent;

No entanto, o navegador ins imprime o uri final assim:

domain.com/?var=value

Como posso ter um uri limpo como esse?

domain.com

Obrigado.

    
por Roger 18.10.2011 / 16:52

3 respostas

1

Trecho de documentação do módulo de reescrita do nginx :

If in the line of replacement arguments are indicated, then the rest of the request arguments are appended to them. To avoid having them appended, place a question mark as the last character:

rewrite  ^/users/(.*)$  /show?user=$1?  last;
    
por 18.10.2011 / 17:15
1

Coloque uma máscara de pergunta no final da substituição:

    location ~ \.php$ {
        location ~ /example\.php$ {
            if ($args ~ var=value) {
                rewrite ^ /? permanent;
            }
        }
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi.conf;

        fastcgi_intercept_errors        on;
        error_page 404 /error/404.php;
    }
    
por 18.10.2011 / 17:22
0

A maneira mais simples que encontrei é esta:

rewrite ^/example.php /? permanent;

Obrigado por todos.

    
por 23.10.2011 / 18:14