Nginx实现多重IF判断的办法

在YII框架中如果访问的图片不存在,会记录大量的错误,于是我想了个办法,凡是访问不存在的图片,直接返回404,不经过YII框架

location / {
  set $if_img N;
  if ($request_filename ~ (.*)\.(png|gif|jpg)){
    set $if_img Y;
  }
  if (!-e $request_filename) {
    set $if_img "${if_img}Y";
  }
  if ($if_img = YY) { return 404; }
  if ($if_img = NY) {
    rewrite (.*) /app/index.php last;
  }
}

Nginx实现多重IF判断的办法

时间: 2024-11-06 03:32:41

Nginx实现多重IF判断的办法的相关文章

shell 多重条件判断

多重条件判断 '判断1 -a 判断2' 逻辑与,判断1和判断2都成立,最终的结果才为真 '判断1 -o 判断2' 逻辑或,判断1和判断2有一个成立,最终的结果就为真 '!判断' 逻辑非,使原始的判断式取反 aa=11 [ -n "$aa" -a "$aa" -gt 23 ] &&echo "yes" || echo "no" 判断变量aa是否有值,同时判断变量aa是否大于23 因为变量aa的值不大于23,所以虽

Nginx rewrite 多重判断

默认Nginx不支持多重判断,可通过设置变量的方式,变相的实现多重判断. 需求: 将http://192.168.1.221/[email protected]_1movsv 跳转到http://192.168.1.221/data/html/192/index.html, 其中[email protected]_1movsv 中的@是固定格式: 同时要满足ThinkPHP的伪静态配置,将http://192.168.1.221/XXX 跳转到http://192.168.1.221/index

Nginx多重if判断的实现

首先 Nginx不支持 and.or.&&.|| 这类语法:且不支持if的多重嵌套,例如: if (aaa) { if (bbb) { exec @ccc; } } 多重判断如何实现呢? 最近要做个配置,将移动设备访问网页时跳转到手机版面.需要判断2个部分才做跳转:一.客户端来源为移动设备:二.访问指定域名业务时. 实现方法一 每个域名配置单独的server{},这样配置比较简明:但缺点是配置文件会写很长,要修改多次.(比较啰嗦) 实现方法二 全部域名配置一个server{},进行多重判断

nginx 502 Bad Gateway 错误解决办法

一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的.这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx

Nginx Upstream timed out 的解决办法

以下内容来自:http://www.ttlsa.com/nginx/nginx-upstream-timed-out-110-connection-timed-out/ 可能发生在如下两种情况上: 1. nginx proxy 此时需要适当的调整 proxy_read_timeout 值. location / { ... proxy_read_timeout 300; ... } 2. nginx 作为 php-fpm 等其他的上游服务 在这种情况下,适当的调整 fastcgi_read_ti

当CodeIgniter遇到Nginx报404错误的解决办法

由于CodeIgniter当初是设计在apache的,而apache对pathinfo是支持比较好的,所以一切都很nice.但是当你把写好的代码放到nginx上,傻眼了,可能出了CodeIgniter的welcom之外,其他都是404错误.而我惊奇的发现,CodeIgniter的官方文档竟然对在Nginx上的配置只字不提.而你百度"CodeIgniter Nginx 404"又能搜到一堆一堆的文章,奇葩的是几乎每个文档的配置方法貌似还不大一样.如果你搞好了还罢,搞不好就是配几个晚上都搞

F 多重背包 判断能否刚好装满

Description 有n种不同大小的数字,每种各个.判断是否可以从这些数字之中选出若干使它们的和恰好为K. Input 首先是一个正整数T(1<=T<=100)接下来是T组数据每组数据第一行是一个正整数n(1<=n<=100),表示有n种不同大小的数字第二行是n个不同大小的正整数ai(1<=ai<=100000)第三行是n个正整数mi(1<=mi<=100000),表示每种数字有mi个第四行是一个正整数K(1<=K<=100000) Outp

Linux(CentOS)下设置nginx开机自动启动(2个办法)

首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: 1 vim /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/PO

多重启动判断之锁文件

public static void main(String[] args)    throws ClassNotFoundException  {    logger.info("Agent 正在启动");    logger.info("设置文件锁,保证单实例");    FileLock flock = null;    try    {      flock = new FileOutputStream("/opt/usp/agent/agent.