1.17-1.18 rewrite实战
1.17-1.18 rewrite实战
https://coding.net/u/aminglinux/p/nginx/git/blob/master/rewrite/example.md
域名重定向
场景1
不带条件的场景
效果:访问2.com 跳转到1.com
vim 2.com.conf server {listen 80;server_name 2.com;root /data/t-nginx/2.com;rewrite /(.*) http://1.com/$1 permanent; }
# curl -x127.0.0.1:80 2.com/1.php -I HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Wed, 24 Oct 2018 07:14:10 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: http://1.com/1.php
带条件的场景
场景2
效果:当访问不是2.com的时候,跳转到www.2.com
vim 2.com.conf server {listen 80;server_name 2.com www.2.com;root /data/t-nginx/2.com;if ( $host != 'www.2.com' ){rewrite /(.*) http://www.2.com/$1 permanent;} } # curl -x127.0.0.1:80 2.com/1.php -I HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Wed, 24 Oct 2018 07:27:42 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: http://www.2.com/1.php
示例3(http跳转到https):
server {listen 80;server_name 2.com www.2.com;root /data/t-nginx/2.com;rewrite /(.*) https://2.com/$1 permanent; } # !curl curl -x127.0.0.1:80 2.com/1.php -I HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Wed, 24 Oct 2018 07:58:59 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: https://2.com/1.php
示例4(域名访问二级目录)
示例5(静态请求分离)
效果:当访问图片文件,流向媒体文件的时候,跳转到特定的域名
server {listen 80;server_name 2.com www.2.com;root /data/t-nginx/2.com;if ( $uri ~* 'jpg|png|gif|js$' ){rewrite /(.*) https://img.2.com/$1 permanent;} } # curl -x127.0.0.1:80 2.com/1.png -I HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Wed, 24 Oct 2018 08:28:18 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: https://img.2.com/1.png
6 防盗链
2.com.conf配置:
server {listen 80;server_name www.2.com; root /data/t-nginx/2.com;location ~* ^.+.(jpg|png|gif|js|mp3|mp4)${valid_referers none blocked server_names *.2.com 2.com;if ($invalid_referer){return 403;}} }
curl 测试
# curl -x127.0.0.1:80 -e "http://linux.com" 'www.2.com/1.gif' -I HTTP/1.1 403 Forbidden Server: nginx/1.8.0 Date: Wed, 24 Oct 2018 09:10:37 GMT Content-Type: text/html Content-Length: 168 Connection: keep-alive 当用refers-->http://linux.com访问www.2.com/1.gif的时候,linux.com不属于白名单,所以会反馈return 403代码。
rewrite多个条件的并且
示例8:
location /{set $rule 0;if ($document_uri !~ '^/abc'){set $rule "${rule}1";}if ($http_user_agent ~* 'ie6|firefox'){set $rule "${rule}2";}if ($rule = "012"){rewrite /(.*) /abc/$1 redirect;} }
解释:
set $rule 0 变量$rule的值为0,第一个条件
set $rule "${rule}1" 变量$rule的值为1,第二个条件
set $rule "${rule}2" 变量$rule的值为2,第三个条
if ($rule = "012") 当$rule满足0 1 2,也就是满足第一,二,三个条件的时候,会执行xxx。。。
转载于:https://blog.51cto.com/13578154/2308329
1.17-1.18 rewrite实战相关推荐
- 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用
2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...
- 2022第二届中国ESG与可持续发展国际峰会将于11月17日-18日在上海举行
由上海希为(ECV International)主办的"2022第二届中国ESG与可持续发展国际峰会"即将于11月17日-18日在上海拉开帷幕.届时,欢迎各位行业同道莅临参与,期待 ...
- Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(二)常用PCB快捷键的介绍
Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(二)常用PCB快捷键的介绍 常用系统快捷键----来自PCB联盟网,若侵联系即删. 目录 一.组合快捷键如何得来呢? ...
- 极简主义linux桌面,Ubuntu 16.04/17.10/18.04安装Zafiro极简图标主题
zafiro图标是桌面xfce4,gnome或lxde的图标包,具有干净简单的设计线条,灵感来源于平面设计. 它是根据L.I.M.A许可证分发的,优先级是极简主义,不会用任何图标来饱和元素,每个图标都 ...
- Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(三十)Cutout的放置
Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(三十)Cutout的放置 目录 一.正片割铜 1.选择多边形铺铜挖空 2.画出某片区域 3.重新铺铜 4.结束,消 ...
- 没有bug队——加贝——Python 练习实例 17,18
17.题目: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 while 或 for 语句,条件为输入的字符不为 '\n'. 注:char:字符串个数:space: ...
- React16、17、18版本新特性
react-16版本新特性 一.hooks import { useState } from 'react'function App() {// 参数:状态初始值比如,传入 0 表示该状态的初始值为 ...
- 【学习笔记】《深入浅出Pandas》第17章:Pandas实战案例
文章目录 17.1 实战思想 17.1.1 链式方法 17.1.2 代码思路 17.1.3 分析方法 17.1.4 分析流程 17.1.5 分析工具 17.2 数据处理案例 17.2.1剧组表格道具: ...
- Flyme 9.2系统更新:适配魅族17、18、18s系列
2022年4月28日,魅族官方发布消息称,Flyme 9.2再次更新.适配魅族17系列.魅族18及18s系列,今日内完成全量推送. 据了解,Flyme 9.2新增应用相册图标,应用照片轻松分类:重构图 ...
最新文章
- 采购计算机的,如何采购计算机
- 通用!Python保存一个对象的方式
- perl pop和push函数,不使用索引更能利用perl的特性,减少边界值错误发生的几率...
- marquee文字起始位置_PS修图改字无痕扫描件复印件截图文字英文日期修改:制作漂亮红色丝绸文字图片的PS教程...
- python对象属性在引用时前面需要加()_python基础-面向对象进阶
- DIN+DIEN,机器学习唯一指定涨点技Attention
- Effective Java~44. 坚持使用标准的函数接口
- 区块链产业生态、存在问题及政策建议|一文读懂新趋势
- TensorFlow——Ubuntu系统上TensorFlow的安装教程
- 微型计算机控制课程设计,《微型计算机控制技术》课程设计
- 离散数学期末复习总结
- Mac OS下安装MangoDB及其使用配置
- 【数字图像处理】Canny边缘检测C语言实现
- ios+手机壳+瞬间切换android,不只是双卡双待,这个手机壳能让你的 iPhone 运行 iOS + Android 双系统...
- Word中在小方框里面打勾的正确方法
- 201712-4 行车路线 ccf
- Android与Unity的交互
- 图神经网络(五):GAT
- mixamo动画批量添加根骨骼与将动作处理成原地动作(blender)
- 18 PyAutoGUI 屏幕截图(1)
热门文章
- nvidia linux路径,NVIDIA Jetson Linux驱动程序包开发人员指南 - 快速入门指南
- 以每月5美元的价格建立自己的博客[分步指南]
- LInux怎么配置php全局变量
- C++俄罗斯方块(linux环境)
- 车牌识别/车牌OCR识别应用场景
- 【华为机试真题详解】判断字符串子序列【2022 Q1 Q2 | 200分】
- java 获取打印机缺纸_Java怎么实现打印机监控
- MySQL - MySQL 常用存储引擎简介
- 计算机二级停车记录表,计算机二级停车情况记录表题目要求及答案.doc
- (错误记录)python3.9安装matplotlib3.2.2版本失败解决