Nginx Server配置中if的用法

Nginx Server的配置以php为例,如下:

server{
    root /var/webproject/www/mytools-php;
    index index.html index.php;
  5    location ~.+?\.php(/|$) {
        fastcgi_split_path_info    ^(.+?\.php)(.*)$;
        if (!-f $document_root$fastcgi_script_name){
            return 404;
        }
        if ($fastcgi_script_name != /index.php){
            return 404;
        }
        fastcgi_pass        127.0.0.1:9000;
        fastcgi_index      index.php;
        include            /opt/nginx-1.8/conf/fastcgi_php_params;
    }
}

nginx中的if无法进行&&、||等逻辑运算,所以我们需要一步一步的进行判断,上面配置首先判断网站根目录下是否存在请求的文件,如果不存在返回404,如果存在接着判断请求的文件是不是index.php,如果不是则返回404。

判断变量和字符串是否相等使用'='或者'!=';

'-f'和'!-f'能够判断判断文件是否存在;

'~'和'!~'是区分大小写的正则判断,'~*'和'!~*'是不区分大小写的正则判断;

'-d'判断目录是否存在;

'-e和'!-e'用来判断文件、目录、符号连接是否存在;

'-x'和'!-x'用来判断可执行文件是否存在;

更多Nginx相关教程见以下内容

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

相关推荐