Java Spring Boot中的子域路由
基本上,我想要达到的是这样的效果Java Spring Boot中的子域路由,java,spring,spring-boot,routing,Java,Spring,Spring Boot,Routing,基本上,我想要达到的是这样的效果 @GetMapping("domain.xyz") public String getHomepage() { [...] return "homepage/main.html"; } @GetMapping("something.domain.xyz") public String getSubdomainHomepage() { [...] return "homepage/subdomain.html"; } domai
@GetMapping("domain.xyz")
public String getHomepage() {
[...]
return "homepage/main.html";
}
@GetMapping("something.domain.xyz")
public String getSubdomainHomepage() {
[...]
return "homepage/subdomain.html";
}
domain.xyz和something.domain.xyz都指向同一台服务器,Spring应用程序在路由时会考虑子域,这样我可以在顶级域上有不同的内容,在子域上有不同的内容
这可以通过Spring Boot实现吗?(注意:这不是100%测试,但可能会起作用)
我假设您的Spring Boot应用程序前面有一个Nginx或Apache
以Nginx为例,您可以使用proxy_pass指令,然后在转发到Spring Boot应用程序时,将的“主机”标题设置为“something.domain.xyz”或“domain.xyz”
因此,您可以增强主机头值的GetMappings到过滤器
@GetMapping(value ="/", headers="Host=domain.xyz")
public String getHomepage() {
[...]
return "homepage/main.html";
}
@GetMapping(value ="/", headers="Host=something.domain.xyz")
public String getSubdomainHomepage() {
[...]
return "homepage/subdomain.html";
}