Nginx(七) URL重写(rewrite)配置

2020-05-02  本文已影响0人  卡戎li

一、Nginx rewrite概述

  1. URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等
  2. SEO优化
  3. 维护:后台维护、流量转发等
  4. 安全,防止盗链,或禁止部分地址的访问

二、Nginx rewrite 语法

语法为if(condition){…}     #对给定的条件condition进行判断。
如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:
a:当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false,其他情况为true。
b: 直接比较变量和内容时,使用 = 或!=
c: 正则表达式匹配,不区分大小写的匹配,!和!反之。

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        access_log  logs/host.access.log  main;
      
       if ( $request_uri = /credit ) {
           rewrite /credit   /credit/index.html last;
       }

       if ( $request_uri = /credit/) {
           rewrite /credit/ /credit/index.html last;
       }

        location ~ /credit {
          content_by_lua_file /usr/local/nginx/conf/front-lua/credit.lua;
        }

        location @credit_release {
              root /usr/local/nginx/html/;
              index index.html;
        }

        location @credit_stable {
              root /usr/local/nginx/html/grey;
              index index.html;
        }
}
location /dwapi/fyfq-dataservice/ {
               add_header Access-Control-Allow-Origin *;
               add_header Access-Control-Allow-Headers X-Requested-With;
               add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
               rewrite  ^/dwapi/fyfq-dataservice/(.*)$ /$1 break;
               proxy_pass http://127.0.0.1:5010;
}

三、关键字

四、日志

该指令用于是否开启URL重写日志的输出,
语法:
rewrite_log on | off
默认是off,如果配置为on,URL重写的相关日志将以notice级别输出到error_log指令配置的日志文件中

五、防盗链

语法:valid_referers none | blocked | server_name | string ...;
这里表示请求头部Referer域是否匹配上面值,如果匹配了$invalid_referer 的值为0,没有相匹配就是1;

location ~* \.(gif|jpg|png|swf|flv)$ {
    valid_referers none blocked www.vison.com www.wsvison.com;  #这里表示Referer头域中的值是none或者blocked或者后面这些网址才会返回去正常的gif|jpg|png|swf|flv文件,否则执行下面if块代码
    if ($invalid_referer) {  #上面没有匹配成功,$invalid_referer值为1,否则为0
        return 404;
    } //防盗链
}       
 
上一篇下一篇

猜你喜欢

热点阅读