大概2周前,接到需求,要求多个域名都可以访问同一个项目,但是其中一些域名不允许访问网站首页。
项目的服务器端部署是springmvc,linux+tomcat+nginx。所以首先想到就是在nginx上做控制,这样不用在项目中修改代码。由于javaweb项目,在web.xml里配置了欢迎页,欢迎页就是首页index.html。所以访问域名:www.xxx.com。就直接会进入这个index.html。网站中没有index.html。在用nginx拦截的时候不知道怎么能捕捉到这个index.html。
后来又想通过if ( $host !='www.xxx.com') 的方式处理。结果失败。
用if ($request_uri != '') 的方式失败。
再这两次失败中发现,if 和 ( 之间必须要有空格,不然也会出错。
再后来,把允许访问域名,和不允许访问域名的 分成了两个虚拟主机 就是写在两个server里。
因为首页其实就项目的根目录。所以在不允许访问首页的虚拟主机中配置了
location / {
return 404;
}
问题解决。
其实就是很简单的一个需求。这里做个记录方便有同样问题的人来看吧。