NGINX的REWRITE配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NGINX的REWRITE配置
NGINX的LOCATION可以有以下几个匹配:
1. = 严格匹配这个查询。如果找到,停止搜索。
2. ^~ 匹配路径的前缀,如果找到,停止搜索。
3. ~ 为区分大小写的正则匹配
4. ~* 为不区分大小写匹配
例子:
LOCATION = / {
# MATCHES THE QUERY / ONLY.
# 只匹配/ 查询。
[ CONFIGURATION A ]
}
LOCATION / {
# MATCHES ANY QUERY, SINCE ALL QUERIES BEGIN WITH /, BUT REGULAR
# EXPRESSIONS AND ANY LONGER CONVENTIONAL BLOCKS WILL BE
# MATCHED FIRST.
# 匹配任何查询,因为所有请求都已/ 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。[ CONFIGURATION B ]
}
LOCATION ^~ /IMAGES/ {
# MATCHES ANY QUERY BEGINNING WITH /IMAGES/ AND HALTS SEARCHING,
# SO REGULAR EXPRESSIONS WILL NOT BE CHECKED.
# 匹配任何已/IMAGES/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ CONFIGURATION C ]
}
LOCATION ~* ".(GIF|JPG|JPEG)$ {
# MATCHES ANY REQUEST ENDING IN GIF, JPG, OR JPEG. HOWEVER, ALL
# REQUESTS TO THE /IMAGES/ DIRECTORY WILL BE HANDLED BY
# CONFIGURATION C.
# 匹配任何已GIF、JPG 或JPEG 结尾的请求。然而所有/IMAGES/ 目录的请求将使用CONFIGURATION C。
[ CONFIGURATION D ]
}
REWRITE指令
REWRITE REGEX REPLACEMENT FLAG
后面的FLAG可以是:
LAST - COMPLETES PROCESSING OF REWRITE DIRECTIVES, AFTER WHICH SEARCHES FOR CORRESPONDING URI AND LOCATION
BREAK - COMPLETES PROCESSING OF REWRITE DIRECTIVES
REDIRECT - RETURNS TEMPORARY REDIRECT WITH CODE 302; IT IS USED IF THE SUBSTITUTING LINE BEGINS WITH HTTP://
PERMANENT - RETURNS PERMANENT REDIRECT WITH CODE 301
需要注意的是,如果REWRITE后,不要它再去匹配其它的LOCATION,则需要加上BREAK,如:LOCATION ^~ /HTML/L/
{
ROOT /OPT/DOCPARSER;
REWRITE "^/HTML/L/(.*)$" /$1;
#注意,需要有BREAK,否则REWRITE后还会继续匹配下面的LOCATION
BREAK;
}
LOCATION ~ /(.*)$ {
PROXY_PASS HTTP://127.0.0.1:8080;
}