nginx正则表达式

$request_filename 当前请求的文件的路径名,由root或alias和URI request组合而成

nginx的rewrite指令中可以通过设置该条rewrite的flag来对该规则进行说明。一般可以设置的flag有:last,break,redirect,permanent四种。

redirect说明,这条规则是一个临时的跳转,并且此时如果观察http请求的话,http的响应状态码为302.

permanent说明,这条规则是一个永久性的跳转,并且此时,http的响应状态码为301.

那么什么是永久性跳转,什么是临时跳转,这有什么作用呢?下面我们举例说明:

如果有一个url,/a。

如果配置成

rewrite "/a" "http://test.html" redirect;

则说明这个跳转是一个临时跳转,此时如果有网络爬虫爬这个链接时,是不会更新自己的url数据库的。

但是如果配置成permanet,则爬虫会更新自己的url数据库,把/a更新为http://test.html

这也就是临时跳转和永久跳转的区别。

二、Location语法 语法:location [=|~|~*|^~] /uri/ { … }
注:
1、~   为区分大小写匹配
2、~* 为不区分大小写匹配
3、!~和!~*分别为区分大小写不匹配
及不区分大小写

不匹配

示例一:

location  / {

}

匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。

示例二:

location =/ {}
仅仅匹配/

示例三:

location ~* \.(gif|jpg|jpeg)$ {

rewrite \.(gif|jpg)$ /logo.png;

注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件

三、ReWrite语法

last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301

1、下面是可以用来判断的表达式:

-f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录

-e和!-e用来判断是否存在文件或目录

-x和!-x用来判断文件是否可执行

时间: 2024-10-12 19:27:04

nginx正则表达式的相关文章

Nginx正则表达式之匹配操作符详解

nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能.例如:防止rewrite.盗链.对静态资源设置缓存以及浏览器限制等等.由于nginx配置中有if指令,但是没有对应else指令,所以判断要分为匹配和不匹配. 字符串表达式支持正则表达式,能设定大小写是否敏感.因此共有四个操作符, 如下: ~     区分大小写(大小写敏感)匹配成功 ~*   不区分大小写匹配成功 !~    区分大小写匹配失败 !~*  不区分大小写匹配失败 1: 限制某些类型的客户端的访问if指令所有的Ngi

nginx 正则表达式

1.nginx配置基础 1.正则表达式匹配 ~ 区分大小写匹配 ~* 不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 ^ 以什么开头的匹配 $ 以什么结尾的匹配 转义字符.可以转. * ?等 * 代表任意字符 2.文件及目录匹配 -f和!-f用来判断是否存在文件 -d和!-d用来判断是否存在目录 -e和!-e用来判断是否存在文件或目录 -x和!-x用来判断文件是否可执行 例: location = / #匹配任何查询,因为所有请求都已 / 开头.但是正则表达式规则和长的

nginx正则表达式(上篇)

微信公众号:郑尔多斯 关注「郑尔多斯」公众号 ,回复「领取资源」,获取IT资源500G干货.升职加薪.当上总经理.出任CEO.迎娶白富美.走上人生巅峰!想想还有点小激动 关注可了解更多的Nginx知识.任何问题或建议,请公众号留言;关注公众号,有趣有内涵的文章第一时间送达! 前言 在Nginx中location, server_name,rewrite等模块使用了大量的正则表达式,通过正则表达式可以完整非常强悍的功能,但是这部分对我们阅读源码也产生了非常大的困惑.本文就集中精力来学习一下Ngin

Nginx rewrite 重写功能和Nginx的正则表达式

一. Rewrite 跳转实现服务协议功能模块url 资源定位路径 nginx----支持url重写.支持if条件判断,但不支持else 跳转----循环最多可以执行10次,超过后nginx将返回500代码错误 rewrite----使用nginx'全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向二.Rewrite 使用场景 使用rewrite进行匹配跳转 使用if匹配全局变量后跳转 使用location匹配再跳转1.rewrite放在 server{},if{},loc

nginx正则说明

nginx正则说明 分类: nginx 2012-08-09 09:40 11758人阅读 评论(0) 收藏 举报 nginx正则表达式firefox ^~ 标识符后面跟一个字符串.Nginx将在这个字符串匹配后停止进行正则表达式的匹配(location指令中正则表达式的匹配的结果优先使用),如:location ^~ /images/,你希望对/images/这个目录进行一些特别的操作,如增加expires头,防盗链等,但是你又想把除了这个目录的图片外的所有图片只进行增加expires头的操作

nginx和lnmp架构

nginx的概述及常见Web服务器的介绍: Unix和Linux平台下的常用Web服务器有Apache. Nginx. Lighttpd. Tomcat. IBM WebSphere等.其中目前应用最广泛的Web服务器是Apache. Windows平台下最常用的服务器则是微软公司的IIS(Internet Information Server).1)Apache服务器 Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发.此后Apache

Nginx配置文件变量大全

$args # 这个变量等于请求行中的参数. $binary_remote_addr # 远程地址的二进制表示 $body_bytes_sent # 已发送的消息体字节数 $content_length # 请求头中的Content-length字段 $content_type # 请求头中的Content-Type字段 $document_uri # 与$uri相同 $document_root # 当前请求在root指令中指定的值 $host # 请求主机头字段,否则为服务器名称 $http

Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写

最常见的: 静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)\.html$" $1/service.php?sid=$2 permanent; 反过来: 带参数的动态地址重定向到静态地址 if ($query_string ~* id=(.*)) { set $id $1; rewrite "^(.*)/article.asp$" $1/article/$id.htm last; } 泛域名解析 view plaincopy

【重要】Nginx模块之————Lua的Nginx API 常量以及参数介绍 (Lua-Nginx-Module 模块)

一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用作nginx.conf文件中Lua API的网关. 下面描述的Nginx Lua API只能在这些配置指令的上下文中运行的用户Lua代码中调用.API以两个标准软件包ngx和ndk的形式暴露给Lua. 这些软件包位于ngx_lua中的默认全局范围内,并且始终可在ngx_lua指令中使用. 这些包可以像这样引入外部Lua模块: local say = ngx.say local _M = {}