Nginx中if语句中的判断条件

1. 正则表达式匹配
==	等值比较;
~	与指定正则表达式模式匹配,判断是否匹配时区分字符大小写;
~*	与指定正则表达式模式匹配,判断是否匹配时不区分字符大小写;
!~	与指定正则表达式模式匹配,判断是否匹配时区分字符大小写;
!~*	与指定正则表达式模式匹配,判断是否匹配时不区分字符大小写;
2. 文件及目录匹配判断
-f/!-f	判断指定的路径是否存在且为文件;
-d/!-d	判断指定的路径是否存在且为目录;
-e/!-e	判断指定的路径是否存在,文件或目录均可;
-x/!-x	判断指定路径的文件是否存在且可执行;

附一个允许指定ip访问,其他ip访问其他页面的实例

set $specify_ip 0;
if ( $remote_addr = 8.8.8.8 ){
	set $specify_ip 1;
}	#注意这里的$remote_addr若使用了负载均衡,这里应该是$http_x_forwarded_for
if ( $remote_addr = 192.168.1.168 ){
	set $specify_ip 1;
}
if ( $remote_addr = 192.168.1.169 ){
	set $specify_ip 1;
}
if ( $specify_ip != 1 ) {
rewrite ^(.*)\.php$	/weihu.html	last;
}	#将所有对php文件的请求转到weihu.html

评论

评论正在提交中...请稍后
评论提交成功...