【发布时间】:2019-04-27 18:36:12
【问题描述】:
我知道,我知道。这个问题被问了太多次,我也研究了很多。但是互联网上的每一个解决方案都把我带到了死胡同。
我想将所有传入的 http 请求重定向到特定的 url/域。
例如,如果有人在浏览器的 url-bar 中键入 - www.test.com 或只是 test.com,它应该将用户重定向到 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 应用程序。
非常感谢您的帮助。
【问题讨论】:
-
你试过了吗 -
location ~ ^/$ { return 301 http://test.com/home; }? -
是的,我也试过了,结果浏览器出现
404 Not Found错误。
标签: http spring-boot nginx server url-redirection