location /en/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #добавляем параметр через & rewrite ^/en/(.*)?(.*)$ http://www.mysite.ru/$1?$2&locale=en break; #добавляем параметр через ? rewrite ^/en/(.*)$ http://www.mysite.ru/$1?locale=en break; #направляем к томкату proxy_pass http://127.0.0.1:8080; break; } 

so, I go to the site ... / en / redirects me 302 to ... /? & locale = en

Say, is pzhl. Thank.

And I would like so:

 url: ..../en/somepage/page2 -> к томкату приходит: .../somepage/page2?locale=en url: ..../en/somepage/page2?a=b -> к томкату приходит: .../somepage/page2?a=b&locale=en 

    2 answers 2

     location /en/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; rewrite ^/en/(.*)(\?.*)?$ /$1?$args&locale=en; proxy_pass http://127.0.0.1:8080; } 

    Wrong in urla, corrected.

    • / en / city redirect to / city :( - Jenkamen
    • In Tomcate there is no redirect. Redirect in all browsers. ( - Jenkamen
    • Strange, the redirect in the rules is not at all ... - Alshabalin
    • Wrong. 500 internal error (forgot to restart nginx) - Jenkamen
    • one
      Happened? - Alshabalin

    Happened. It turns out I tomkat redirekt.

    And in rewrite ^ / en / (. ) (?. )? $ / $ 1? $ Args & locale = en;

    will not be like this: / en / msk -> to Tomkata / msk? & locale = en?

    • one
      The rewrite instruction ^ / en /(.*)(\?.*)?$ / $ 1? $ Args & locale = en; will translate / en / msk to / en / msk? & locale = en, but this will not affect the work at all - Alshabalin
    • those. sequence? & is it ok? - Jenkamen
    • one
      Completely :) This is correct from any point of view, except, of course, "aesthetic", but the user still does not see it) - Alshabalin