文章目录

  • 一、Rewrite基本概述
  • 二、Rewrite标记,Flag
    • (1)flag类型
    • (2)对于Flag中的break和last
      • -实验环境
      • -实验步骤
    • (2)对比Flag中的redirect和permanent
      • -实验环境
      • -实验步骤

一、Rewrite基本概述

  • Rewrite的作用:主要实现URL地址重写,以及地址重定向

  • Rewrite的使用场景:

  1. URL访问跳转:支持开发设计,页面跳转,兼容性支持,展示效果
  2. SEO优化:依赖于URL路径,以便于支持搜索引擎录入
  3. 维护:后台维护,流量转发等
  4. 安全:伪静态
  • Rewrite配置语法:

语法: rewrite regex replacement [flag];

可配置区域: server、location、if

例如:把所有请求都转发给/aaa/bbb.html

rewrite ^(.*)$ /aaa/bbb.html break;

二、Rewrite标记,Flag

(1)flag类型

Flag 意义
last 如果跳转的资源没有,那么就往下面的location需找资源,如果有就跳转,没有就停止跳转
break 如果跳转的资源没有,那么会直接停止跳转
redirect 返回302临时重定向,地址栏会显示跳转后的地址,只会在Nginx开启的时候生效
permanent 返回301永久重定向,地址栏会显示跳转后的地址,Nginx关闭后也会生效

(2)对于Flag中的break和last

-实验环境

系统 主机名 ip地址 nginx版本
Cetnos7.4 rzy 192.168.100.202 Nginx-1.18.0

-实验步骤

******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname rzy
[root@Centos7 ~]# su
[root@rzy ~]# systemctl stop firewalld
[root@rzy ~]# setenforce 0
setenforce: SELinux is disabled
[root@rzy ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙/dev/sr0 已经挂载到 /mnt 上******(2)上传Nginx源码包,进行安装
[root@rzy ~]# yum -y install zlib-devel pcre-devel
。。。。。。
完毕!
[root@rzy ~]# ll
总用量 1020
-rw-------. 1 root root    1264 1月  12 18:27 anaconda-ks.cfg
-rw-r--r--  1 root root 1039530 4月  19 10:03 nginx-1.18.0.tar.gz
[root@rzy ~]# tar xf nginx-1.18.0.tar.gz  -C /usr/src/
[root@rzy ~]# cd /usr/src/nginx-1.18.0/
[root@rzy nginx-1.18.0]# useradd -M -s /sbin/nologin nginx
[root@rzy nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
[root@rzy nginx-1.18.0]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/
[root@rzy nginx-1.18.0]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true[Install]
WantedBy=multi-user.target
[root@rzy nginx-1.18.0]# cd /usr/local/nginx/conf/
[root@rzy conf]# cp nginx.conf nginx.conf.bak
[root@rzy conf]# sed -i '/#/d' nginx.conf
[root@rzy conf]# sed -i '/^$/d' nginx.conf******(3)修改配置文件
[root@rzy conf]# vim nginx.conf1 worker_processes  1;2 events {3     worker_connections  1024;4 }5 http {6     include       mime.types;7     default_type  application/octet-stream;8     sendfile        on;9     keepalive_timeout  65;10     server {11         listen       80;12         server_name  localhost;13         root /aaa/bbb;  #网页目录14         location ~ ^/break {  #匹配break资源15             rewrite ^/break /ccc/ break; #跳转到/ccc/16         }17         location ~ ^/last { #匹配last资源18             rewrite ^/last /ccc/ last; #跳转到/ccc/19         }20         location ~ /ccc/ { #匹配/ccc/资源21             default_type application/json;22             return 200 '{"status":"success"}'; #返回200状态码,内容是{"status":"success"}的页面23         }24      25     }26 }
[root@rzy conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@rzy conf]# systemctl start nginx

使用浏览器进行访问

分别访问这三个location,发现break直接报错,而last和/ccc/可以访问成功,这就是因为在指定的网页目录找不到指定资源的情况下,break会直接停止跳转从而报错404找不到页面,而last会继续往下寻找跳转的资源,所以last可以访问成功

(2)对比Flag中的redirect和permanent

-实验环境

系统 主机名 ip地址 nginx版本
Cetnos7.4 rzy 192.168.100.202 Nginx-1.18.0

两个类型都可以进行跳转,都是last的检测方式,即找不到资源就往下一个location寻找

-实验步骤

******(1)继续上面的实验,修改配置文件
[root@rzy ~]# vim /usr/local/nginx/conf/nginx.conf1 worker_processes  1;2 events {3     worker_connections  1024;4 }5 http {6     include       mime.types;7     default_type  application/octet-stream;8     sendfile        on;9     keepalive_timeout  65;10     server {11         listen       80;12         server_name  localhost;13         root /aaa/bbb;14         location ~ ^/aaa {15             rewrite ^/aaa /ccc/ redirect;16         }17         location ~ ^/bbb{18             rewrite ^/bbb /ccc/ permanent;19         }20         location ~ /ccc/ {21             default_type application/json;22             return 200 '{"status":"success"}';23         }24 25     }26 }
[root@rzy ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@rzy ~]# systemctl restart nginx

在Nginx开启的时候,两种类型都可以进行重定向

关闭Nginx,再次进行访问

访问aaa无法跳转,访问bbb可以跳转到ccc

Nginx的rewrite地址重写相关推荐

  1. nginx的基本使用和反向代理,地址重写问题

    nginx相关操作 Windows下操作:1.启动:C:\server\nginx-1.14.2>start nginx或C:\server\nginx-1.14.2>nginx.exe注 ...

  2. nginx 地址重写 、反向代理

    目录 案例一:nginx地址重写 步骤一:修改配置文件(访问a.html 跳到b.html) 步骤二:修改配置文件(访问a.网站的a页面,跳转的是a网站的b页面) 步骤三:修改配置文件(访问192.1 ...

  3. nginx服务器中url重写rewrite参数和例子

    本文转自:http://www.cnblogs.com/cgli/archive/2011/05/16/2047920.html 最近在VPS上尝试配置安装一个网站,VPS安装了LNMP(Linux+ ...

  4. Nginx静态资源站点——Nginx地址重写

    Nginx rewrite技术主要是实现URL地址重写,且支持正则表达式的规则 rewrite能够实现URL的跳转,需要nginx在编译安装的时候,装好了PCRE这个软件. 通过rewrite可以规范 ...

  5. index.php?s=$1,thinkphp nginx配置rewrite,地址会多出个.php

    thinkphp nginx配置rewrite,地址会多出个.php ,http://localhost:7080/.php?m=... nginx配置文件 server { listen 80; # ...

  6. Nginx地址重写功能

    Nginx地址重写功能

  7. Nginx的rewrite应用

    Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Ngi ...

  8. Nginx——反向代理路径重写重定向实践示例

    示例 #http节点中可以添加多个server节点server{#听443端口listen 8443 ssl;#对应的域名,把www.shentuzhiganga.top改成你们自己的域名就可以了se ...

  9. Nginx的rewrite内容介绍

    Rewrite功能配置 Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能.主要的作用是用来实现URL的重写. 注意:Nginx服务器的Rewrite功能的实现 ...

  10. php重写地址,php url地址重写

    地址重写: urlRewrite: 就是:  1. 将php的地址index.php不写只写Action模块和function方法, 或者 2. php地址转变成html地址, 就是一种假的html, ...

最新文章

  1. Metasploit中aggregator插件无法使用
  2. android 屏幕完美适配,Android完美适配不同屏幕
  3. 五年了,别再把务虚会开 “虚” 了
  4. (46)FPGA对数运算符(V代码实现)
  5. kippo mysql_Kippo:一款优秀的SSH蜜罐开源软件.pdf
  6. 【安卓笔记】—— 页面导航 Navigation(3)
  7. 金融现金贷用户数据分析和用户画像
  8. 计算机印屏幕功能无法使用,笔记本电脑无法使用外接显示屏幕扩展功能
  9. android实现视频壁纸,ffmpeg/camera实现最近很火的视频壁纸,相机壁纸
  10. 6.郝斌C语言笔记——流程控制
  11. android 自动朗读,Android TextToSpeech多国语言自动朗读
  12. 单播、多播(组播)和广播解释
  13. 计算标准偏差c语言,C ++程序计算标准偏差
  14. 关于3分频电路的讨论
  15. 转『天涯杂谈』那些让人惊艳的歌词(整理版),很经典,与大家分享。
  16. 黑苹果卡在白苹果不动_iphone5开机白屏中间黑苹果,卡住不动。
  17. 初入python世界——python基础语法
  18. 物联网(IoT)及其未来应用方向
  19. php案例:用Windows命令来运行php程序
  20. 关于中国电信、中国联通5G网络的几点思考

热门文章

  1. ABAQUS不能导入.x_t文件解决方法
  2. nofllow html5,NoFollow:高亮显示nofollow标签
  3. html的nofollow、noindex标签
  4. 请教苹果虚拟机自动配置序列号ID脚本
  5. 创意小发明:山寨码表.自行车码表的制作 程序原理图,设计图,源代码
  6. 【记录】凯酷84说明书
  7. Beautiful Soup4.2文档
  8. Material Theme UI 插件的下载安装与使用,免费版Material Theme UI 插件
  9. AndroidQ SystemUI之插件化机制Plugin
  10. 实战sqlmap绕过WAF(中转注入)