一、需求:直接通过域名访问首页(同一应用下,多个首页,包括PC端、手机端首页)

  方法:采用多个域名绑定同一IP下同一应用,不同域名对应不同产品(PC、手机端)的方法,在后台通过拦截器判断 request 中的host字段值,进而重定向到不同的页面

@Configuration
@EnableWebMvc
public class InterceptorConfig extends WebMvcConfigurerAdapter { @Bean
public HostInterceptor hostInterceptor() {
return new HostInterceptor();
} @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(hostInterceptor()).addPathPatterns("/");
super.addInterceptors(registry);
}
}
package com.zxguan.thymeleaf.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* @author zxguan
* @description
* @create 2018-03-16 10:28
*/
public class HostInterceptor implements HandlerInterceptor { @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String host = request.getHeader("host");
if (host.equals("localhost")) {
response.sendRedirect("/home");
} else {
response.sendRedirect("/index");
}
return false;
} @Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }
}
    @RequestMapping(value = {"/", "/index"})
public String test() {
return "test";
} @RequestMapping(value = "/home")
public String home() {
return "home";
}

Spring Boot 多个域名指向同一IP的更多相关文章

  1. spring boot:用redis+lua实现基于ip地址的分布式流量限制(限流/简单计数器算法)(spring boot 2.2.0)

    一,限流有哪些环节? 1,为什么要限流? 目的:通过对并发请求进行限速或者一个时间单位内的的请求进行限速,目的是保护系统可正常提供服务,避免被压力太大无法响应服务. 如果达到限制速率则可以采取预定的处 ...

  2. 【http反向代理】多个域名指向同一个ip的不同网站解决方法

    一个服务器需要挂载多个项目[重点是都能通过域名访问] 实现原理: 1.当前市面上看到的一些服务器,开放的端口一般都要求为 '80' 端口 所以80端口成了商用端口 2.域名的绑定是绑定一个一般是绑定你 ...

  3. 如何配置DNS服务器(局域网——域名指向某个IP地址)

    单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上 ...

  4. 修改window本地hosts文件,修改域名指向

    Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Host ...

  5. nginx反向代理:两个域名指向不同web服务端口

    一台服务器上安装了zabbix服务和jumpserver服务,两个域名zabbix.xxxx.xxxx和jumserver.xxx.xxxx 一.编辑/etc/nginx/conf.d目录下nginx ...

  6. 使用spring boot admin

    spring boot admin管理端, 需要部署成独立的应用 pom中添加依赖 <dependency> <groupId>de.codecentric</group ...

  7. Spring Boot Metrics监控之Prometheus&Grafana(转)

    欢迎来到Spring Boot Actuator教程系列的第二部分.在第一部分中,你学习到了spring-boot-actuator模块做了什么,如何配置spring boot应用以及如何与各样的ac ...

  8. spring boot:用spring security加强spring boot admin的安全(spring boot admin 2.3.0 / spring boot 2.3.3)

    一,spring boot admin的安全环节: 1,修改context-path,默认时首页就是admin, 我们修改这个地址可以更安全 2,配置ip地址白名单,有ip限制才安全, 我们使用了sp ...

  9. 【随笔】nginx下的301跳转,两个域名指向同一个服务器ip

    301跳转 页面永久性移走,通常叫做301跳转,也叫301重定向,301转向. 指的是当用户点击一个网址时,通过技术手段,跳转到指定的一个网站. 用以解决两个域名指向同一个服务器ip,当访问m.xxx ...

随机推荐

  1. 【scikit-learn】06:make_blobs聚类数据生成器

      版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kevinelstri/article/ ...

  2. 【Java】LinkedHashMap

    Java LinkedHashMap 标签(空格分隔):Java source-code 总结 1.LinkedHashMap基于HashMap,实现了按插入顺序.LRU,实现方式主要是继承了Hash ...

  3. 判断 js 类型的方式

    1. typeof 可以判断出'string','number','boolean','undefined','symbol'但判断 typeof(null) 时值为 'object'; 判断数组和对 ...

  4. 数据库Sequence创建与使用

    最近几天使用Oracle的sequence序列号,发现对如何创建.修改.使用存在很多迷茫点,在上网寻找答案后,根据各路大神的总结,汇总下对自己的学习成果: 在Oracle中sequence就是序号,每 ...

  5. 学习笔记——C++编程cin测试记录

    cin读取输入流,遇到空格会暂停,下次继续读入剩下的,+++. #include <iostream> using namespace std; int main() { cout< ...

  6. SQL-W3School-函数:SQL LAST() 函数

    ylbtech-SQL-W3School-函数:SQL LAST() 函数 1.返回顶部 1. LAST() 函数 LAST() 函数返回指定的字段中最后一个记录的值. 提示:可使用 ORDER BY ...

  7. connections java.net.BindException: Address already in use_解决方案

    一.问题描述 在Linux服务器(CentOS7系统)中配置并启动JMeter远程监控服务器资源所需的ServerAgent目录下的 startAgent.sh 文件时,系统出现异常提示,如 [roo ...

  8. 009-Linux nohup

    一.基础概述 1./dev/null 可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然 ...

  9. JavaScript——closures(待续)

    问答原文:How do JavaScript closures work?

  10. sed替换 - 含反斜杠(/)和Shell变量

    sed替换 - 含反斜杠(/)和Shell变量 摘自: https://blog.csdn.net/zhenyongyuan123/article/details/6616263 2011年07月19 ...