宿主/Service

Nginx 中if判断条件详解

阿里云

我们经常在 Nginx 配置中看到一些 if 条件判断,及一些复杂判断语句,类似于

  1. location / {
  2.   if (!-e $request_filename){
  3.     rewrite  ^(.*)$  /index.php;
  4.   }
  5. }
也想出现在这里?联系我们
创客主机

这个 if 里面就有个 !-e 判断,这个是什么意思呢?我们来看两种

与文件或目录相关的匹配

模式 1 模式 2 说明
-f !-f 判断路径是否存在且是文件
-d !-d 判断路径是否存在且是目录
-e !-e 判断路径是否存在
-x !-x 判断路径是否存在且可执行

与正则表达式相关的匹配

模式 说明
== 判断是否相等
~ 判断是否匹配,且区分大小写
~* 判断是否匹配,且不区分大小写
!~ 判断是否不匹配,且区分大小写
!~* 判断是否不匹配,且不区分大小写

下面我们看个示例

  1. if ( $request_uri ~* /(.*)\.php ) {                                        
  2.   return 502;
  3. }
  4.  
  5. if (!-f $request_filename) {
  6.   return 414;
  7. }

第一个 if 是判断是否匹配后面的正则,且不区分大小写

第二个 if 是判断是否存在且为文件

Nginx 中 if 判断条件详解

已有 576 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!