rewrite只能针对请求的uri进行重写,/a.php问号后面的是请求参数,在nginx用$query_string表示,直接写这样的一条重写肯定不会正确匹配,因为rewrite参数只会匹配请求的uri,在写重写的时候需要把$query_string变量追加到重写的uri后面,为了防止uri中的参数追加到重写后的uri,可以在后面加个问号: if ($query_string ~ "...
http_user_agent #客户端agent信息 http_cookie #客户端cookie信息 limit_rate #这个变量可以限制连接速率。 query_string #与args相同。 request_body_file #客户端请求主体信息的临时文件名。 request_method #客户端请求的动作,通常为GET或POST。 remote_addr #客户端的IP地址。 remote_port #客户端的端口。 r...
1、^: 匹配字符串的开始位置; 2、 $:匹配字符串的结束位置; 3、.*: .匹配任意字符,*匹配数量0到正无穷; 4、\. 斜杠用来转义,\.匹配 . 特殊使用方法,记住记性了; 5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp 6、i不区分大小写 一.正则表达式匹配,其中: *...
query_string: pid=121414&cid=sadasd host: var.lion-test.club http_user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 http_referer: http_via: request_time: 0.000 https: request_filename: /usr/share/nginx...
~正则表达式匹配,~*不区分大小写的匹配,!~区分大小写的不匹配-f和!-f用来判断是否存在文件-d和!-d用来判断是否存在目录-e和!-e用来判断是否存在文件或目录-x和!-x用来判断文件是否可执行 可用在if语句的全局变量 $args : #这个变量等于请求行中的参数,同$query_string ...
$query_string #与 $args 相同。 $scheme #HTTP 方法(如 http,https)。 $server_protocol #请求使用的协议,通常是 HTTP/1.0 或 HTTP/1.1。 $server_addr #服务器地址,在完成一次系统调用后可以确定这个值。 $server_name #服务器名称。 $server_port #请求到达服务器的端口号。
我们主要关注两个location,假设地址是http://www.qq.com/user/info,会匹配到如下location location / { try_files $uri $uri/ /index.php?$query_string; } 1. 2. 3. 由于$uri和$uri/是不存在的,所以会走/index.ph...
rewrite ^http://example.com/permanent; # 如果query string中包含"post=140",永久重定向到example.com } location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blockedwww.jefflei.comwww.els.ru; # 防盗链 if ($invalid_referer) { ...
$query_string// 与$args相同 等于当中URL的参数(GET),如a=1&b=2 $request_body// 记录POST过来的数据信息 $request_body_file//客户端请求主体信息的临时文件名 $request_method//客户端请求的动作,通常为GET或POST,如:GET $request_uri//包含请求参数的...