удалить префикс имени проекта из URL перенаправления весны - PullRequest
2 голосов
/ 18 марта 2019

Я использую обратный прокси-сервер nginx для подключения tomcat, и конфигурация nginx:

server {
  listen      80;
  listen [::]:80;
  server_name magnet.s-m.local;

  location / {
      proxy_pass http://tomcat:8080/magnet/;
      proxy_cookie_path /magnet /;
      proxy_redirect     off;
      proxy_set_header   Host $host;
      proxy_set_header   X-Real-IP $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Host $server_name;
  }
}

все это нормально, но когда я хочу перенаправить Spring, добавьте имя проекта в путь перенаправления.

@RequestMapping(value = "/login",method = RequestMethod.POST)
public String loginCheck(HttpSession session, @RequestParam("username") String user, @RequestParam("password") String password){
    session.setAttribute("username",user);
    return "redirect:/home";
}

этот код перенаправляет на http://magnet.s-m.local/magnet/home, но я хочу перенаправить http://magnet.s-m.local/home

, если я использую RedirectView, это хорошо, но лучше использовать redirect:/home, потому что я могу решить перенаправить или загрузить файл JSPесли вход не выполнен.

1 Ответ

1 голос
/ 21 марта 2019

Попробуйте удалить параметры proxy_redirect и proxy_set_header Host из конфигурации nginx:

location / {
    proxy_pass http://tomcat:8080/magnet/;
    proxy_cookie_path /magnet /;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
}

Вы также можете указать proxy_redirect более подробно, но его следует активировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...