Nginx的rewrite重写配置


配置详解

URL的rewrite(重写)是Nginx的http请求处理过程中的一个重要功能,它能对用户请求的URL进行正则重写,然后返回30×重定向跳转或按条件执行相关配置。Nginx使用内置的ngx_http_rewrite_module模块解析和处理rewrite请求。

语法规则

  • rewrite 正则表达式 目标URL [选项];

配置说明

1、正则表达式:允许基于Perl兼容的正则表达式(PCRE)对用户请求的URL进行重写。例如:

  • ^/(.*)$,表示以/开头,然后以0至多个字符结尾的字符串。
  • ^/admin/(.*)$,表示以/admin/开头,然后以0至多个字符结尾的字符串。

2、选项:控制重写行为。

  • last:处理完当前规则后停止匹配,并根据重写的URL重新进行匹配。
  • break:执行重写请求,但不进行新的location匹配。
  • redirect:返回302,临时重定向,表示URL临时改变。
  • permanent:返回301,永久重定向,表示URL永久改变。

注意事项

rewrite指令针对不同的作用域可以配置在server和location块中。

配置示例

1、基于域名的重写,主要用于将旧域名的请求重定向至新域名。

nginx
  • rewrite ^/(.*)$ http://www.ywkt.net/$1 permanent:将所有请求包括路径、请求参数等全部内容永久重定向至www.ywkt.net。$1是对前面括号中正则匹配的内容的引用,即除首字符/外的所有字符。

2、基于路径的重写,主要用于将旧路径的请求重定向至新路径。

nginx
  • rewrite ^/(.*)$ /admin/$1 permanent:将所有请求包括路径、请求参数等全部内容永久重定向至新路径/admin/。

3、基于文件类型的重写,主要用于将某一类文件的请求重定向至新路径。

nginx
  • rewrite ^/images/(.*)$ /static/images/$1 last:将images下所有的png图片重定向至新路径/static/images。

发表评论

评论数量:0