Nginx的rewrite地址重写
文章目录
- 一、Rewrite基本概述
- 二、Rewrite标记,Flag
- (1)flag类型
- (2)对于Flag中的break和last
- -实验环境
- -实验步骤
- (2)对比Flag中的redirect和permanent
- -实验环境
- -实验步骤
一、Rewrite基本概述
Rewrite的作用:主要实现URL地址重写,以及地址重定向
Rewrite的使用场景:
- URL访问跳转:支持开发设计,页面跳转,兼容性支持,展示效果
- SEO优化:依赖于URL路径,以便于支持搜索引擎录入
- 维护:后台维护,流量转发等
- 安全:伪静态
- 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地址重写相关推荐
- nginx的基本使用和反向代理,地址重写问题
nginx相关操作 Windows下操作:1.启动:C:\server\nginx-1.14.2>start nginx或C:\server\nginx-1.14.2>nginx.exe注 ...
- nginx 地址重写 、反向代理
目录 案例一:nginx地址重写 步骤一:修改配置文件(访问a.html 跳到b.html) 步骤二:修改配置文件(访问a.网站的a页面,跳转的是a网站的b页面) 步骤三:修改配置文件(访问192.1 ...
- nginx服务器中url重写rewrite参数和例子
本文转自:http://www.cnblogs.com/cgli/archive/2011/05/16/2047920.html 最近在VPS上尝试配置安装一个网站,VPS安装了LNMP(Linux+ ...
- Nginx静态资源站点——Nginx地址重写
Nginx rewrite技术主要是实现URL地址重写,且支持正则表达式的规则 rewrite能够实现URL的跳转,需要nginx在编译安装的时候,装好了PCRE这个软件. 通过rewrite可以规范 ...
- index.php?s=$1,thinkphp nginx配置rewrite,地址会多出个.php
thinkphp nginx配置rewrite,地址会多出个.php ,http://localhost:7080/.php?m=... nginx配置文件 server { listen 80; # ...
- Nginx地址重写功能
Nginx地址重写功能
- Nginx的rewrite应用
Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Ngi ...
- Nginx——反向代理路径重写重定向实践示例
示例 #http节点中可以添加多个server节点server{#听443端口listen 8443 ssl;#对应的域名,把www.shentuzhiganga.top改成你们自己的域名就可以了se ...
- Nginx的rewrite内容介绍
Rewrite功能配置 Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能.主要的作用是用来实现URL的重写. 注意:Nginx服务器的Rewrite功能的实现 ...
- php重写地址,php url地址重写
地址重写: urlRewrite: 就是: 1. 将php的地址index.php不写只写Action模块和function方法, 或者 2. php地址转变成html地址, 就是一种假的html, ...
最新文章
- Metasploit中aggregator插件无法使用
- android 屏幕完美适配,Android完美适配不同屏幕
- 五年了,别再把务虚会开 “虚” 了
- (46)FPGA对数运算符(V代码实现)
- kippo mysql_Kippo:一款优秀的SSH蜜罐开源软件.pdf
- 【安卓笔记】—— 页面导航 Navigation(3)
- 金融现金贷用户数据分析和用户画像
- 计算机印屏幕功能无法使用,笔记本电脑无法使用外接显示屏幕扩展功能
- android实现视频壁纸,ffmpeg/camera实现最近很火的视频壁纸,相机壁纸
- 6.郝斌C语言笔记——流程控制
- android 自动朗读,Android TextToSpeech多国语言自动朗读
- 单播、多播(组播)和广播解释
- 计算标准偏差c语言,C ++程序计算标准偏差
- 关于3分频电路的讨论
- 转『天涯杂谈』那些让人惊艳的歌词(整理版),很经典,与大家分享。
- 黑苹果卡在白苹果不动_iphone5开机白屏中间黑苹果,卡住不动。
- 初入python世界——python基础语法
- 物联网(IoT)及其未来应用方向
- php案例:用Windows命令来运行php程序
- 关于中国电信、中国联通5G网络的几点思考
热门文章
- ABAQUS不能导入.x_t文件解决方法
- nofllow html5,NoFollow:高亮显示nofollow标签
- html的nofollow、noindex标签
- 请教苹果虚拟机自动配置序列号ID脚本
- 创意小发明:山寨码表.自行车码表的制作 程序原理图,设计图,源代码
- 【记录】凯酷84说明书
- Beautiful Soup4.2文档
- Material Theme UI 插件的下载安装与使用,免费版Material Theme UI 插件
- AndroidQ SystemUI之插件化机制Plugin
- 实战sqlmap绕过WAF(中转注入)