Nginx通過配置rewrite規(guī)則實現(xiàn)URL重寫以及重定向。在rewrite規(guī)則中,可以使用Nginx定義的一些全局變量,用來獲取請求相關的信息或者傳遞信息給后端。以下是常用的Nginx全局變量:
$args:獲取URL中的參數(shù)部分,如 ?key=value。
$uri:獲取請求的URI,不包含請求參數(shù)。
$request_method:獲取HTTP請求方法,如 GET、POST、PUT等。
$request_uri:獲取請求的完整URI,包含參數(shù)。
$http_user_agent:獲取客戶端的User-Agent信息。
$remote_addr:獲取客戶端的IP地址。
$server_addr:獲取當前請求的服務器的IP地址。
$server_port:獲取當前請求的服務器的端口號。
$http_host:獲取請求的HTTP主機名。
$http_referer:獲取頁面的來源地址。
這些全局變量可以與rewrite指令一起使用,實現(xiàn)URL重定向、轉發(fā)等功能。例如,以下rewrite規(guī)則將所有請求都重定向到指定的URL,并在URL末尾添加參數(shù):
location / {
rewrite ^/(.*)$ http://example.com/$1?test=1 last;
}
在這個規(guī)則中,使用了Nginx的$1變量來獲取請求的URI,并將其添加到重定向URL的末尾,使用了$args變量來添加參數(shù)。這樣,當有任何請求到達這個位置時,都會被重定向到指定URL,并且?guī)в袇?shù)。