nginxrewrite有什么功能(Nginx Rewrite使用场景及代码案例详解)
nginxrewrite有什么功能
Nginx Rewrite使用场景及代码案例详解Nginx Rewrite使用场景
1.URL地址跳转,例如用户访问pm.com将其跳转到baidu.com或者当用户通过http的方式访问时,将其跳转至https的方式访问。
2.URL伪静态,将动态页面显示为静态页面方式的一种技术,减少动态URL地址对外暴露过多的参数,提升更高的安全性。
3.搜索引擎SEO优化依赖于URL路径,以便支持搜索引擎录入
4.可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。
配置语法
rewrite regex replacement [flag];
4种flag
last 停止处理后续rewrite指令集,跳出location作用域,并开始搜索与更改后的URI相匹配的location,URL地址不变
break 停止处理后续rewrite指令集,不会跳出location作用域,不再进行重新查找,终止匹配,URL地址不变
redirect 返回302临时重定向,浏览器地址栏会显示跳转后的URL地址,爬虫不会更新自己的URL数据库
permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫会更新自己的URL数据库
注:使用last和break时浏览器中的地址不会改变,使用redirect和permanent则会改变
举例说明:
location /abc/ { rewrite ^/abc/(.*) /whsir/$1 break; return 401; } location /opq/ { rewrite ^/opq/(.*) /whsir/$1 last; return 402; } location /whsir/ { return 403; }
输入abc后,如果能匹配到whsir的内容,则返回200,否则返回404
输入opq后,如果能匹配到whsir的内容,则返回403,否则返回404
last和break只返回一个状态码即成功或失败,redirect和permanent会先返回302或301,在返回成功或失败
常用的Nginx全局变量:
例:http://www.pm.com:99/aa/bb/test.php
$host www.pm.com
$server_port 99
$request_uri /aa/bb/test.php
$document_root /pm_code
$request_filename /pm_code/aa/bb/test.php
案例1:外部跳转
打开lb01虚拟机,先将之前的自定义配置文件关闭,新建/etc/nginx/conf.d/rewrite.conf
注:^/意思为以根(这里根目录为/pm_code,对应域名为www.pm.com)开头的url都会重定向到百度。
修改/etc/nginx/nginx.conf文件
将错误日志级别修改为notice使其能记录到重定向信息(debug, info, notice, warn, error, crit越靠前记录的信息越多)
在http模块中添加一行
rewrite_log on;(打开rewrite日志记录)
测试
在浏览器地址栏中输入www.pm.com(在hosts中已配置好),会重定向到百度首页
案例2:内部跳转
更改/etc/nginx/conf.d/rewrite.conf内容
在/pm_code中创建文件2.html(内容222),在浏览器中输入www.pm.com/1.html
在错误日志中查看记录
使用return
在上述方法中,浏览器地址栏中显示的是1.html,而网页内容是2.html的内容,如果想要地址栏中也显示2.html,将location中的内容更改为 return 302 /2.html; 或者 rewrite .* /2.html redirect;
使用正则
例:将www.pm.com/2020/* 重定向到 www.pm.com/2019/*
括号代表一个整体,$1代表前面第一个括号内的内容
将http跳转到https
注:nginx 1.14版本后可以不用写ssl on了,listen那里写成listen 443 ssl;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- nginx做转发配置weight啥意思(Nginx中break与last的区别详析)
- nginx配置目录(nginx配置文件使用环境变量的操作方法)
- vue项目部署到服务器的nginx(Nginx部署vue项目和配置代理的问题解析)
- nginx配置404状态码(解决Nginx 配置 proxy_pass 后 返回404问题)
- nginx对静态文件开启缓存(nginx proxy_cache 缓存配置详解)
- linux系统查看nginx系统版本(Linux中Nginx的防盗链和优化的实现代码)
- nginx安全配置提示(wdcp Linux面板nginx启用gzip后js未压缩解决方案)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- nginx反向代理spring boot(Nginx+SpringBoot实现负载均衡的示例)
- nginx为什么要配置https(Nginx配置Https安全认证的实现)
- nginx404错误页面设置(Nginx tp3.2.3 404问题解决方案)
- centos7 离线安装nginx(centos8安装nginx1.9.1的详细过程)
- nginxdjango部署(详解Django+uwsgi+Nginx上线最佳实战)
- nginx动态路径配置(Nginx本地目录映射实现代码实例)
- nginx代理docker容器(Docker Nginx容器制作部署实现方法)
- nginx如何配置不显示nginx名字(Nginx安装完成没有生成sbin目录的解决方法)
- 富士胶片 中国 我们对上海的信心没有任何改变(富士胶片中国)
- 赢麻了 富士公布2021年度财报 营利同比增长240(富士公布2021年度财报)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
热门推荐
- 虚拟服务器和云主机的区别(云服务器属于虚拟机么?它们有什么不同?)
- vue 实现吸顶效果(vue实现水波涟漪效果的点击反馈指令)
- jquery deferred对象
- pandas删除特定条件的行(pandas删除指定行详解)
- vue时间转换(vue如何动态实时的显示时间浅析)
- mysql新增字段并添加备注(mysql添加备注信息的实现)
- dede编码在哪里改(dede栏目页面包屑导航最后的分隔符大于号去掉方法)
- 阿里云centos系统安装tomcat(阿里云服务器Tomcat无法访问的问题)
- 用javascript解析json(JavaScript JSON.stringify的使用总结)
- 谷歌云服务账号详解(谷歌云服务器一年到期后,怎么继续免费使用?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9