美文网首页
Nginx(七) URL重写(rewrite)配置

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

作者: 卡戎li | 来源:发表于2020-05-02 13:43 被阅读0次

一、Nginx rewrite概述

  • Rewite 规则作用
    Rewrite规则可以实现对url的重写,以及重定向

  • 作用场景:

  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;
}

三、关键字

  • last
    终止在本location块中处理接收到的URI,并将此处重写的URI作为新的URI使用其他location进行处理。(只是终止当前location的处理)
  • break
    将此处重写的URI作为一个新的URI在当前location中继续执行,并不会将新的URI转向其他location。
  • redirect
    将重写后的URI返回个客户端,状态码是302,表明临时重定向,主要用在- replacement字符串不以“http://”,“ https://”或“ $scheme” 开头;
  • permanent
    将重写的URI返回客户端,状态码为301,指明是永久重定向;

四、日志

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

五、防盗链

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

  • none
    表示Referer头域不存在的情况
  • blocked
    检测Referer头域的值被防火墙或者代理服务器删除或者伪装的情况,这种情况,该头域的值不以“http://”或者“https://”开头
  • server_name
    设置一个或者多个URL,检测Referer头域的值是否是这些URL中的某个
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;
    } //防盗链
}       
 

相关文章

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

    一、Nginx rewrite概述 Rewite 规则作用Rewrite规则可以实现对url的重写,以及重定向 作...

  • Nginx的Rewrite指令

    Nginx重写与转发 Nginx通过ngx_http_rewrite_module模块,实现Url的重写和转发。 ...

  • nginx--rewrite

    URL重写(rewrite)介绍 rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能...

  • Linux_261_Nginx之URL重写

    Nginx的URL地址重写功能,主要是使用nginx提供的rewrite功能,且支持正则表达式rewrite能够实...

  • Nginx - rewrite模块深度学习

    1、Nginx的rewrite规则 作用:1、实现url重写与重定向。场景:1、URL访问跳转,支持开发设计。 ...

  • apache URL重写

    URL重写 URL rewrite介绍 URL重写 一、URL重写介绍 Apached的重写功能,即是mod_re...

  • Nginx-11 地址重写 rewrite

    一、什么是Rewrite ​ Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重...

  • Nginx URL重写(rewrite)配置及信息详解

    URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中 Nginx URL...

  • Nginx+负载均衡-2

    Nginx+负载均衡-2 rewrite重写 规则 语法: location 配置 (注: 需要pcre才能开启...

  • 八、地址重写

    一、什么是Rewrite ​ Rewrite对称URL Rewrite,即URL重写,就是把传入Web的请求重定向...

网友评论

      本文标题:Nginx(七) URL重写(rewrite)配置

      本文链接:https://www.haomeiwen.com/subject/nidkghtx.html