nginx if判断 and 使用
360图片搜索遇到这么一个场景,pc端的搜索结果页和频道列表页,在移动端访问时,检测到是移动版的ua,会自动跳转到对应的移动端结果页或频道列表页。
现在,pc端新上了一个频道,服饰频道,但是移动端还没开发。当在移动端访问pc版的服饰频道页时,会跳转到移动端的频道页,但是没有服饰频道,所以跳转到了默认的美女频道,体验不好。
所以,就需要做一个处理,当发现是服饰频道时,不跳转,保持pc端的展示。
之前的nginx配置是判断ua后,就决定是否跳转。
现在需要对频道页判断,而由于频道页是通过参数传入,而不是在path里边,所以使用rewrite规则无法解决。
其实就可以使用$request_uri判断就可以了。本来是打算在if里通过 and 或者 && 解决,结果发现不支持。
查了资料后,发现一个方便实现的方法,通过两次判断,设置变量的形式。
如下: