首页 > 系统相关 >Nginx基础 - 08路径Rewrite

Nginx基础 - 08路径Rewrite

时间:2023-03-11 19:12:17浏览次数:48  
标签:http rewrite 08 Rewrite server break Nginx html bearpx

 

一、 Rewrite 基本描述

rewrite 主要实现 url 地址重写,以及重定向。   使用场景
  • URL 访问跳转: 支持开发设计,页面跳转,兼容性支持

  • SEO 优化: 依赖于url路径,以便支持搜索引擎录入

  • 维护: 后台维护,流量转发等

  • 安全: 伪静态,真实动态页面进行伪装

 

二、 Rewrite 配置语法

Syntax:  rewrite regex replacement [flag];
Default: --
Context: server, location, if

 

rewrite ^(.*)$ /pages/maintain.html break;   // 所有请求转发至 /pages/maintain.html break;   2.1 正则表达式
表达式  
. 匹配除换行符以外的任意字符
重复0次或1次
+ 重复1次或更多次
* 任意次数
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结尾
{n} 重复n次
{n+} 重复n次或更多次

 

2.2 正则表达式中的特殊字符

\ : 转义字符
rewrite index.php$ /pages/index.php break;
() :用于匹配括号之间的内容,通过 $1、$2调用
if ($http_user_agent ~ Chrome) {
    rewrite ^(.*)$ /chrome/$1 break;
}
--> 实现效果:
http://localhost/test001.html  --> http://localhost/chrome/test001.html

  

2.3 正则表达式终端测试工具

# yum install -y pcre-tools
# pcretest
re> /(\d+)\.(\d+)\.(\d+)\.(\d+)/
data> 192.168.10.19
 0: 192.168.10.19
 1: 192
 2: 168
 3: 10
 4: 19

  

三、 Rewrite 标记Flag

flag  
last 停止rewrite检测
break 停止rewrite检测
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
 

3.1 对比flag中 break 与 last

last  会新建立一个请求,请求域名+/test

break 匹配后不会进行匹配,会查找对应的root站点目录下包含 /test 目录

server {
    listen 80;
    server_name localhost;
    root /soft/code;
    location ~ ^/break {
        rewrite ^/break /test/ break;
    }
    location ~ ^/last {
        rewrite ^/last /test/ last;
    }
    location /test/ {
        default_type applicaiton/json;
        return 200 '{"status":"success"}';
    }  
}

  

3.2 比对flag中 redirect 与 permanent permanent 跳转,在关闭掉Nginx服务器后,浏览器依旧可以跳转,但清除缓存后,不能跳转
server {
    listen 80;
    server_name localhost;
    root /soft/code;
    location ~ ^/px {
        rewrite ^/px http://king.bearpx.com redirect;
        rewrite ^/px http://king.bearpx.com permanent;
    }
}

  

四、 Rewtire使用场景

当对外展示URI时,需要隐藏真实目录结构
server {
    listen 80;
    server_name localhost;
    root /soft/code;
    index index.html;
    location / {
        rewrite ^/px-(\d+)-(\d+)\.html /px/$1/px_$2.html break;
    }
}

  

当Chrome浏览器访问/px时,直接跳转到 index.html;
server {
    if($http_user_agent ~* Chrome){
        rewrite ^/px http://px.bearpx.com/index.html redirect;
    }
}

 

五、Rewrite 匹配优先级

  • 执行server块的 rewrite指令
  • 执行location匹配
  • 执行选定的location中的rewrite
  5.1 Rewrite 优雅书写
server {
    listen 80;
    server_name www.bearpx.com bearpx.com;
    if ($http_host = nginx.org){
        rewrite (.*) http://www.bearpx.com$1;
    }
}

// 改进写法
server {
    listen 80;
    server_name www.bearpx.com bearpx.com;
    rewrite ^ http://www.bearpx.com$request_uri?;

}

--> 实现效果
bearpx.com/bear/bear.html  --> http://www.bearpx.com/bear/bear.html

  

 

 

 

标签:http,rewrite,08,Rewrite,server,break,Nginx,html,bearpx
From: https://www.cnblogs.com/kingdomer/p/13938229.html

相关文章

  • Nginx基础 - 07代理缓存
     缓存是用来减少后端压力,将压力尽可能的往前推, 提高网站的并发延时。一、缓存常见类型服务端缓存:redis/memcached代理缓存,获取服务端内容进行缓存:Nginx_proxy  ......
  • Nginx如何升级Openssl
    1.什么是Openssl?在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联......
  • leetcode-1408-easy
    StringMatchinginanArrayGivenanarrayofstringwords,returnallstringsinwordsthatisasubstringofanotherword.Youcanreturntheanswerinanyo......
  • Nginx基础 - 04静态资源
      一、静态资源类型Nginx作为静态资源Web服务器部署配置,传输非常的高效,常常用于静态资源处理、请求、动静分离。非服务器动态运行生成的文件属于静态资源。类型......
  • Nginx基础 - 03基本配置
     一、Nginx配置文件结构Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件。整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始于......
  • Nginx 负载均衡反向代理 Windows安装部署教程
     一、Nginx简介   Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。它也是一种轻量级的Web服务器,可以作为独立的服务器部署网站......
  • ES008-Elasticsearch+hbase整合
    1:设计索引库的settings信息的mappings信息,并把这些配置信息保存到一个配置文件中。1.1viarticles.json{"settings":{"number_of_shards":3,"nu......
  • SQL2008R2 截断日志否则无法收缩数据库
    USE[master]GOALTERDATABASEFE_BASE5SETRECOVERYSIMPLEWITHNO_WAITGOALTERDATABASEFE_BASE5SETRECOVERYSIMPLEGOUSEFE_BASE5GODBCCSHRINKFILE(N'FE......
  • P2590 [ZJOI2008]树的统计
    一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值W。我们将以下面的形式来要求你对这棵树完成一些操作:I.CHANGEut:把结点u的权值改为t。II.QMAXuv:......
  • 8086 微处理器
    《Intel8086CPU的内部结构》  通用寄存器AX,BX,CX,DXAX:累加器BX:基址寄存器CX:计数寄存器DX:数据寄存器具体师大书P12......