nginx rewrite
文章目录
指令学习
if
== 等值比较;
~ 与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符大小写
~* 与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字符大小写
!~ 与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符大小写
!~* 与指定正则表达式模式不匹配时返回“真”,判断匹配与否时不区分字符大小写
-f, !-f 判断指定的路径是否为存在且为文件
-d, !-d 判断指定的路径是否为存在且为目录
-e, !-e 判断指定的路径是否存在,文件或目录均可
-x, !-x 判断指定路径的文件是否存在且可执行
location
= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
~ 区分大小写匹配(可用正则表达式)
!~ 区分大小写不匹配
~* 不区分大小写匹配(可用正则表达式)
!~* 不区分大小写不匹配
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
proxy_、upstream
rewrite
rewrite ^/(.*)$ http://example.com/$1 permanent;
rewrite break url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
rewrite last url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
rewrite redirect 返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
rewrite permanent 返回301永久重定向, 地址栏显示重定向后的url,爬虫会更新url
实例
location = / {
# 只匹配 / 查询。
}
location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
}
location ^~ /p_w_picpaths/ {
# 匹配任何已 /p_w_picpaths/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
}
location ~*.(gif|jpg|jpeg)$ {
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
}
参考
上次更新 2019-10-08
原始文档 查看本文 Markdown 版本 »