Как перенаправить все входящие HTTP-запросы на определенный URL в конфигурационном файле nginx? - PullRequest
0 голосов
/ 26 ноября 2018

Я знаю, я знаю.Этот вопрос задают слишком много раз, и я его тоже много исследовал.Но каждое решение в интернете ведет меня в тупик.Я хочу перенаправить все входящие http-запросы на определенный URL / домен.Например, если кто-то набирает - www.test.com или просто test.com в строке URL браузера, он должен перенаправить пользователя на http://test.com/home.
Это то, чего я пытался добиться за последние 3 дня, не уверенчто я делаю не так.
Это мой серверный блок.

server {
        listen   80;
        server_name test.com;
        port_in_redirect off; 
     #  server_name_in_redirect off; 
        client_max_body_size 20M; 

 location / { 

      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-Proto $scheme;
      proxy_redirect off; 
      proxy_pass          http://localhost:8000/ ;
      proxy_read_timeout  90;     
      return 301 http://test.com/home;

        }

}

Приведенная выше конфигурация выдает мне ошибку - too many redirection в браузере, когда я пытаюсь получить доступ к веб-сайту.удаление оператора return, выдающего мне ошибку page not found и не меняющего / не перенаправляющего URL-адрес на http.test.com/home.

PS - я использую другой веб-сайт на этом же сервере на порту 443(https) и это работает абсолютно хорошо.Я запускаю приложение Spring-boot.
Помощь высоко ценится.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы пишете слишком много кодов, связанных с перенаправлением, поэтому показывает эту ошибку.

Измените свой блок сервера, как показано ниже.

server {
    listen   80;
    server_name test.com www.test.com;
    client_max_body_size 20M; 
    #return 301 http://test.com/home$request_uri;
}

location ~ ^/(?!home) { 
  return 301 http://test.com/home$request_uri;
}

location /home {
    root   /var/www/test.com/html/;
    index  index.html index.htm;
}
...