nginx 重写

Posted 那天ws

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 重写相关的知识,希望对你有一定的参考价值。

rewrite指令可在 server 块或者 location 块中配置。

语法:

rewrite regex replacement [flag];

1、rewrite 接收的 uri 不包含 host 地址,不包含参数。可通过全局变量$uri、$args获取。

2、flag:last、break、redirect、permannet

   last:中止在本location块中处理接收到的URI,并将此处重写的URI作为一个新的URI,使用其他 location 块进行处理。让所有的location块重新匹配和处理新的URI。

   break:将重写后的URI作为一个新的URI,在本块中继续进行处理。将重写后的地址在当前的location块中执行,不会将新的URI转向到其他location块。新的URI始终在同一个location块中。

  redirect:302临时重定向。

  permanent:301永久重定向。

3、rewrite_log

   rewrite_log on; 开启URL重写日志。以 notice 级别输出到 error_log指令配置的日志文件中。

 

通过重写防盗链:

 1 server{
 2     listen 80;
 3     server_name www.test.com;
 4     location ~* ^.+\.(gif|jpg|png)${
 5          valid_referers none blocked server_name *.test.com;
 6          if($invalid_referer){
 7              rewrite ^/ http://www.test.com/images/forbidden.png;
 8          }
 9      }      
10 }    

valid_referer指令设置有效的 referer,若referer有效则设置$invalid_referer为1,否则为0;

none表示没有referer;

blocked表示referer被防火墙或者代理服务器删除或伪装;

server_names设置一个或多个URL。

 

以上是关于nginx 重写的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

NGINX:重写图像位置

推进学说代码片段

java 代码片段

Nginx rewrite 重写功能和Nginx的正则表达式

nginx rewrite uri地址重写