从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

一些面向WEB开发的应用,会对浏览器有一定要求,比如必须在IE下,或Chrome下浏览。那如何实现不同终端访问不同域名的跳转?比如,如果是IE浏览器访问,则提示此浏览器不兼容,建议更换chrome浏览器继续访问。
这里主要使用到nginx的一个rewrite规则。可以在Chrome下模拟不同的浏览器来测试。
首先,使用chrome打开测试主机192.168.68.128上的nginx发布页面,F12调出开发模式,
从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

点击窗口右上角三个圆点,More tools-Network conditions
从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

可以看到User agent,主要使用user agent这项来设定rewrite规则匹配。
从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

掉去User agent 对应的Select automatically对应的勾。可以选择需要的浏览器,如下,查看到对应的IE9,IE11还不相同,分别对应的:MSIE和Trident,在nginx配置文件,利用MSIE和Trident做匹配
从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

然后,在nginx配置文件里面,使用rewrite,利用MISE和Trident来做匹配。

if ( $http_user_agent ~* "MISI | Trident" )  {
       rewrite ^/(.*) /notify.html;
       }

从零开始学习Linux:Day06 Nginx之rewrite实现不同域名跳转

最后,发布目录创建notify.html页,写入内容:此浏览器不兼容,建议更换chrome浏览器继续访问。

然后在chrome下可以模拟访问,IE时提示更换chrome,使用chrome访问时正常。

猜你喜欢

转载自blog.51cto.com/13292114/2498438