前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx rewrite配置解读

nginx rewrite配置解读

作者头像
code4it
发布2018-09-17 15:36:46
6330
发布2018-09-17 15:36:46
举报

本文主要解析一下ngx_http_rewrite_module中的rewrite相关配置。

directives

名称

默认配置

作用域

官方说明

中文解读

模块

break

server, location, if

Stops processing the current set of ngx_http_rewrite_module directives.

中断当前的重写

ngx_http_rewrite_module

if

server, location

The specified condition is evaluated. If true, this module directives specified inside the braces are executed, and the request is assigned the configuration inside the if directive. Configurations inside the if directives are inherited from the previous configuration level.

if表达式成立则执行,if代码块里头的配置继承外部的配置; false和0都表示不成立; string比较,相等用=,不相等用!= ; 文件存在用-f,不存在用! -f ; 目录存在用-d,不存在用 ! -d ; 链接存在用-e,不存在用! -e ; 文件可执行用-x,不可执行用! -x

ngx_http_rewrite_module

return

无,语法 return code [text]; return code URL; return URL;

server, location, if

Stops processing and returns the specified code to a client. The non-standard code 444 closes a connection without sending a response header.

停止处理并返回,返回444的话则会关闭连接,连header都不会发送

ngx_http_rewrite_module

rewrite

无,语法 rewrite regex replacement [flag];

server, location, if

If the specified regular expression matches a request URI, URI is changed as specified in the replacement string. The rewrite directives are executed sequentially in order of their appearance in the configuration file. It is possible to terminate further processing of the directives using flags. If a replacement string starts with “http://”, “https://”, or “$scheme”, the processing stops and the redirect is returned to a client.

last停止匹配,使用重写后的url进行新的匹配; break停止当前的url重写; redirect进行302跳转; permanent进行301跳转

ngx_http_rewrite_module

rewrite_log

rewrite_log off;

http, server, location, if

Enables or disables logging of ngx_http_rewrite_module module directives processing results into the error_log at the notice level.

设置是否在error_log以notice级别开启rewrite的log

ngx_http_rewrite_module

set

无,语法 set $variable value;

server, location, if

Sets a value for the specified variable. The value can contain text, variables, and their combination.

设置变量

ngx_http_rewrite_module

uninitialized_variable_warn

uninitialized_variable_warn on;

http, server, location, if

Controls whether warnings about uninitialized variables are logged.

设置是否打印使用了未初始化变量的log

ngx_http_rewrite_module

实例

http {
        # a special log format referencing variables we'll define later
        log_format imagelog '[$time_local] ' $image_file ' 
                            '$image_type ' 
                            ' $body_bytes_sent ' 
                            ' $status;

        # we want to enable rewrite-rule debugging to see if our rule does what we intend
        rewrite_log on;

        server {
            root /home/www;
            location / {
                # we specify which logfile should receive the rewriteruledebug messages
                error_log logs/rewrite.log notice;

                # our rewrite rule, utilizing captures and positional variables
                # note the quotes around the regular expression theseare required because we used {} within the expression itself
                rewrite '^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gif)$' /data?file=$3.$4;

                # note that we didn't use the 'last' parameter above; if we had, the variables below would not be set because NGINX would have ended rewrite module processing here we set the variables that are used in the custom log format 'imagelog'
                set $image_file $3;
                set $image_type $4;
            }
    }
}

doc

  • ngx_http_rewrite_module
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • directives
  • 实例
  • doc
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档