nginx地址重写rewrite

nginx地址重写rewrite

1.nginx重写rewrite

1.rewrite相关语句

  • if
  • rewrite
  • set
  • return

2.if语句

  • 应用环境

    server,location
    
  • 语法

    if ()
    #可以支持:
    ~					#正则匹配(区分大小写)
    ~*					#正则匹配(不区分大小写)
    !~					#正则不匹配(区分大小写)
    !~*					#正则不匹配(不区分大小写)
    

2.常用nginx全局环境变量

$host            	 #请求信息中的"host"
$request_uri     	 #当前请求的文件路径名
$request_filename	 #当前请求的文件路径名(带网站的主目录)

3.匹配参考示例

配置位置:/etc/nginx/conf.d/default.conf

IP192.168.222.131
#http://192.168.222.131/takehaye/1.html ===> http://192.168.222.131/yhb/2.html
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
server {listen		80;server_name	 _;location /takehaye {root	/usr/share/nginx/htnml;index	1.html index.html;rewrite	.* /yhb/2.html;}location /yhb {root	/usr/share/nginx/html;index	2.html index.html;}
}
#创建测试文件与测试页面
[root@localhost ~]# mkdir /usr/share/nginx/html/takehaye
[root@localhost ~]# mkdir /usr/share/nginx/html/yhb
[root@localhost ~]# echo takehaye > /usr/share/nginx/html/takehaye/1.html
[root@localhost ~]# echo yhb > /usr/share/nginx/html/yhb/2.html
#http://192.168.222.131/takehaye ==> http://www.baidu.com
#http://192.168.222.131/yhb ==> http://rog.asua.com.cn
server {listen		80;server_name	_;location / {if ($uri ~* takehaye) {return	http://www.baidu.com;}if ($uri ~* yhb) {return	http://rog.asua.com.cn;}}
}

4.return指令

return指令用于返回状态码给客户端

应用实例

server {listen			80;server_name		_;location / {root	/usr/share/nginx/html;index	index.html}location ~* \.sh {return 403;}
}

2.nginx的location指令

1.结构

http {                                #协议级别include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;keepalive_timeout  0;#gzip  on;server {                          #服务级别listen		80;server_name	_;location / {             #请求级别root	/html;}}
}

2.location前缀含义

#表示精确匹配:=
#表示匹配uri路径:^~
#表示正则匹配(区分大小写):~
#表示正则匹配(不区分大小写):~*
#表示不匹配正则(区分大小写):!~
#表示不匹配正则(不区分大小写):!~*
#通用匹配:/

3.nginx日志

日志路径:/var/log/nginx

指令中一些常用的变量

$remote_addr, $http_x_forwarded_for	#记录客户端IP地址
$remote_user					  #记录客户端用户名称
$reques                             #记录请求的URL和HTTP协议
$status                             #记录请求状态
$time_local                         #通用日志下的本地时间

动态查看日志

[root@localhost ~]# tail -f /var/log/nginx/error.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用fetch加载阿里云的在线json 出现403错误

在做地图项目的时候,引用了阿里云的在线JSON地图数据。 问题描述: 但是本地开发使用fetch请求json地址的时候接口却出现了403错误,把地址直接复制到浏览器上却能正常打开。 https://geo.datav.aliyun.com/areas_v3/bound/330000_full.json …

06-操作元素

在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇通过简单案例来介绍app应用中的一些常用操作。 一、案例介绍 下面列表中有四个字典,每个字典中的num1代表第一个操作数,num2代表第二个操作数&a…

力扣 面试题17.04.消失的数字

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 示例 1: 输入:[3,0,1] 输出:2 示例 2: 输入:[9,6,4,2,3,5,7,0,1] 输出&#x…

GIT----使用技巧之保存现场回退新建分支继续开发

GIT----使用技巧之保存现场回退新建分支继续开发 前言: 故事是这样的,有一个比较复杂的项目使用的是STM32F103VCT6(资源flash-256k,RAM-48k),开发到一半发现RAM不够用了,换容量更大的芯片STM32F103VGT6(资源…

再谈量化策略失效的问题

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

【qt5生成软件-can卡-上位机-无法加载ControlCAN.dll错误代码(0xc0150002)等相关问题-WIN11系统-尝试解决】

【qt5生成软件-无法加载ControlCAN.dll&错误代码0xc0150002:-等相关问题-WIN11系统-尝试解决-总结整理】 1.前言2.环境说明3.问题说明4.尝试方法总结(1)更新支持包c库(2)更新USB相关驱动(3)…

Sqlite3数据库基本使用

一、基本概念 数据:能够输入计算机并能被计算机程序识别和处理的信息集合 数据库:长期存储在计算机内、有组织的、可共享的大量数据的集合 DBMS:位于用户与操作系统之间的一层数据管理软件,用于操纵和管理数据库 二、安装 在线…

一文读懂Java线程池之自定义线程池、设置合适的线程数量、线程池阻塞队列、线程拒绝策略

在上篇我们学习了线程池各个参数的含义,线程池任务处理流程,使用线程池的好处等内容,本篇我们学习如何创建一个适合我们业务的线程池。为此,我们有必要先学习一下如何大概确定我们线程池核心线程数、怎么设置阻塞队列的类型与大小、当线程池没有能力处理任务了该如何使用拒…

JS中操作符是什么

在JavaScript中,操作符是用于执行特定任务(如加法、减法、比较等)的特殊符号。这些操作符根据其功能可以分为几类: 算术操作符: :加法-:减法或取反*:乘法/:除法%&#xf…

经验分享,16进制与字符串的互相转换网站

分享一个16进制与字符串的互相转换的网站,比较实用。 网址: https://www.bejson.com/convert/ox2str/ 截图:

C++中priority_queue的模拟实现(注释详解)

首先我们要了解什么是 priority_queue ,priority_queue 优先队列是一种数据结构,它存储了元素以及它们的优先级。在优先队列中,元素按照其优先级的顺序进行移除,优先级较高的元素首先被移除。优先队列通常使用堆数据结构来实现&am…

Linux内核编程(六)平台总线plantform驱动模型

本文目录 前述:为什么引入平台总线模型一、知识点1. 什么是平台总线模型2. 平台总线模型使用3. 平台总线是如何工作的4. 平台总线模型的优点 二、平台总线设备层1. 常用API(1) 注册一个平台设备(2) 注销一个平台设备&a…

最好用的智能猫砂盆存在吗?自用分享智能猫砂盆测评!

在现代都市的忙碌生活中,作为一名上班族,经常因为需要加班或频繁出差而忙碌得不可开交。急匆匆地出门,却忘了给猫咪及时铲屎。但是大家要知道,不及时清理猫砂盆会让猫咪感到不适,还会引发各种健康问题,如泌…

SolidityFoundry 安全审计测试 Delegatecall漏洞2

名称: Delegatecall漏洞2 https://github.com/XuHugo/solidityproject/tree/master/vulnerable-defi 描述: 我们已经了解了delegatecall 一个基础的漏洞——所有者操纵漏洞,这里就不再重复之前的基础知识了,不了解或者遗忘的可…

HTML入门教程:深度解析HTML,开启你的前端技术之旅

一、引言 HTML(HyperText Markup Language,超文本标记语言)是前端开发的基础,它负责构建网页的结构和内容。作为前端技术栈的基石,HTML的掌握程度直接影响到网页的开发效率和用户体验。本教程将带你从零开始&#xff…

C语言从头学23——参数的传值与传址引用

在前面学习函数时,曾学习过函数的参数。函数的参数可以是具体的值,也可以是变量。当函数的参数是变量时,就涉及到参数如何传递到函数中。一般有两种方式:传值引用方式、传址引用方式。 一、传值引用:函数的参数以…

微信小程序学习(四):模板语法、数据绑定、数据监听

1、声明和绑定数据 小程序页面中使用的数据均需要在 Page() 方法的 data 对象中进行声明定义在将数据声明好以后,需要在 WXML 中绑定数据,数据绑定最简单的方式是使用 Mustache 语法(双大括号)将变量包起来。在 {{ }} 内部可以做…

使用vue自定义指令directive写一个div移动指令

使用vue自定义指令directive写一个div移动指令 1、在src/utils目录创建drag.js文件。在注册指令名称时不需要‘v-’; import Vue from vueVue.directive(drag, {bind(el,binding){// 鼠标是否按下let dragging false;// 鼠标距离当前元素的x轴向距离let offsetX …

(新)Spring Security如何实现登录认证(实战篇)

一、回顾认证流程详解 概念速查: Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。 AuthenticationManager接口:定义了认证Authentication的方法 UserDetailsService接口:加载用户特定数据的核心接…

从视频创意到传播策略 | 医药产品TVC新媒体传播方案

作为营销策划人,你一定在寻找能够激发创意灵感、拓展策划视野的实战案例。这份最新传播方案由Unithought精心打造,不仅是一份详尽的策划指南,更是一次深入患者心灵的品牌传播实践。 何策网,每日收录全网方案PPT ! 方…