Nginx: reescrita de URL com parâmetros proxy_pass e URL e caracteres especiais

Nginx: reescrita de URL com parâmetros proxy_pass e URL e caracteres especiais

Estudei todas as ótimas postagens sobre proxy nginx e funcionalidade de reescrita, mas não consegui encontrar uma solução para o meu problema. Então aqui estamos nós. Eu escrevi uma aplicação web com vaadin, que é capaz de lidar com a seguinte solicitação:

http://<server>/#main/search?country=germany&type=songwriter

Para otimização de SEO, quero lidar com URLs "falantes", como: http:///compositor/germania. Então pensei que reescrever URL no servidor web fosse a solução. Mas por mais que eu tenha tentado, não consigo colocar a hashtag na solicitação e formar a solução final! Aqui está o que eu tentei:

  location  /songwriter/ {
        proxy_set_header Host $host;
        proxy_redirect off;
        # Option 1 - hastag is encoded
        rewrite ^/songwriter/(.+) /#main/suche?land=$1  break;
        proxy_pass http://127.0.0.1:8080; 
 }

O que recebo no rastreamento é: /%23main/suche land=berlin/. Qualquer ideia?

Responder1

O fragmento de URL é apenas do lado do cliente e nunca é enviado ao servidor. (Como o literal #não é permitido lá, o URL nginx o codifica.) Se seu aplicativo da web abusar de fragmentos de URL para navegação, eles só poderão ser manipulados pelo código do lado do cliente (no navegador). Observe que usar fragmentos de URL dessa forma não é considerado uma boa prática. Você provavelmente terá que reescrever significativamente seu aplicativo da web para se livrar deles.

informação relacionada