Nginx通过配置rewrite规则实现URL重写以及重定向。在rewrite规则中,可以使用Nginx定义的一些全局变量,用来获取请求相关的信息或者传递信息给后端。以下是常用的Nginx全局变量:
$args:获取URL中的参数部分,如 ?key=value。
$uri:获取请求的URI,不包含请求参数。
$request_method:获取HTTP请求方法,如 GET、POST、PUT等。
$request_uri:获取请求的完整URI,包含参数。
$http_user_agent:获取客户端的User-Agent信息。
$remote_addr:获取客户端的IP地址。
$server_addr:获取当前请求的服务器的IP地址。
$server_port:获取当前请求的服务器的端口号。
$http_host:获取请求的HTTP主机名。
$http_referer:获取页面的来源地址。
这些全局变量可以与rewrite指令一起使用,实现URL重定向、转发等功能。例如,以下rewrite规则将所有请求都重定向到指定的URL,并在URL末尾添加参数:
location / {
rewrite ^/(.*)$ http://example.com/$1?test=1 last;
}
在这个规则中,使用了Nginx的$1变量来获取请求的URI,并将其添加到重定向URL的末尾,使用了$args变量来添加参数。这样,当有任何请求到达这个位置时,都会被重定向到指定URL,并且带有参数。