Nginx中if语句中的判断条件⼀、if语句中的判断条件(nginx)
1、正则表达式匹配:
==:等值⽐较;
~:与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符⼤⼩写;
~*:与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字符⼤⼩写;
!~:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符⼤⼩写;
!~*:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时不区分字符⼤⼩写;
2、⽂件及⽬录匹配判断:
-f, !-f:判断指定的路径是否为存在且为⽂件;
-d, !-d:判断指定的路径是否为存在且为⽬录;
-e, !-e:判断指定的路径是否存在,⽂件或⽬录均可;
-
x, !-x:判断指定路径的⽂件是否存在且可执⾏;
3、部分正则表达式可以在圆括号内"()",其值可以通过后⾯的变量$1到$9来访问:
rewrite ^/b/(.*)\.html /play.php?video=$1 last;#其中$1就表⽰引⽤前⾯匹配的(.*)⾥⾯的内容。
server {
listen 80;
server_name joy;
#set $flag 0;
##if ($flag = 0) {
# return 501;
#}
#客户端请求的完整请求路径
#if ( $request_uri ~* /(.*)\.php ) {
# return 502;
#}
if (!-f $request_filename) {
return 414;
}
#禁⽌chrome访问
#if ($http_user_agent ~ Chrome) {
# return 503;
#}
location /loct {
return 401;
}
location / {
#if
root html;
index index.html;
}
}
可使⽤的全局变量:- $args
- $content_length - $content_type
- $document_root - $document_uri
正则匹配链接-
$host
- $http_user_agent - $http_cookie
- $limit_rate
- $request_body_file - $request_method - $remote_addr
- $remote_port
- $remote_user
- $request_filename - $request_uri
- $query_string
- $scheme
- $server_protocol - $server_addr
- $server_name
-
$server_port
- $uri
参考链接:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论