曲径通幽论坛
标题:
rewrite 常用的全局变量说明
[打印本页]
作者:
beyes
时间:
2015-8-7 10:07
标题:
rewrite 常用的全局变量说明
$args
该变量存放了请求 URL 中的请求指令。比如
http://www.groad.net/bbs/forum.php?mod=forumdisplay&fid=53
中的 mod=forumdisplay&fid=53 ,可以如下测试:
if ($args ~* "mod=forumdisplay&fid=53") {
return 400;
}
复制代码
当你访问上述网址时,会看到服务器返回 400 的错误:
[attach]4082[/attach]
需要注意的是,如果 nginx 配置成正向代理,那么你返回 500 错误时,不会有效。
$content_length
变量中存放了请求头中的 Content-length 字段。
$content_type
变量中存放了请求头中的 Content-type 字段。
$document_root
变量中存放了针对当前请求的根路径。
$document_uri
变量中存放了请求中的当前 URI,并且不包含请求指令,比如
http://www.groad.net/bbs/forum.php?mod=forumdisplay&fid=53
中的 "/bbs" 。因此,如果用以下代码测试:
if ($document_uri ~* "/bbs") {
return 400;
}
复制代码
就会无法访问到本站。
$host
变量中存放了请求 URL 中的主机部分字段,比如
http://www.groad.net/bbs/forum.php?mod=forumdisplay&fid=53
中的
www.groad.net
。如果请求中的主机部分字段不可用或为空,则存放 Ngnix 配置中该 server 块中 server_name 指令的配置值。
$http_user_agent
变量中存放客户端的代理信息。
$http_cookie
变量中存放客户端的 cookie 信息。
$limit_rate
变量中存放了 Nginx 服务器对网络连接速率的限制,也就是 Nginx 配置中 limit_rate 指令的配置值。
$remote_addr
变量中存放了客户端的地址。
$remote_port
变量中存放了客户端与服务器建立的连接端口号。
$remote_user
变量中存放了客户端的用户名。
$request_body_file
变量中存放了发给后端服务器的本地文件资源的名称。
$request_method
变量中存放了客户端的请求方式,如 "GET", "POST" 等。
$request_filename
变量中存放了当前请求资源文件的路径名。
$request_uri
变量中存放了当前的 URI,并且带请求指令。
$query_string
与变量 $args 含义相同。
$scheme
变量中存放了客户端请求使用的协议,比如 "http", "https" 和 "ftp" 等。
$server_protocol
变量中存放了客户端请求协议的版本,比如 “HTTP/1.0” , "HTTP/1.1" 等。
$server_addr
变量中存放了服务器的地址
$server_name
变量中存放了客户端请求到达的服务器的名称。
$server_port
变量中存放了客户端请求到达的服务器的端口号。
$uri
与变量 $document_uri 含义相同。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2