当前位置:首页 > 技术文章 > 正文内容

nginx rewrite规则详解(nginx rewrite_by_lua)

arlanguage3个月前 (01-31)技术文章17

目录

  • 概述
  • rewrite语法规则
  • rewrite配置实例解析
  • php7进阶到架构师相关阅读

概述

这是关于php进阶到架构之Nginx进阶学习的第篇文章:nginx rewrite规则详解

nginx的rewrite功能和apache一样,rewrite的主要功能是实现RUL地址的重定向。

Nginx的rewrite模块即ngx_http_rewrite_module模块。

rewrite机制从某种意义上可以说为了美观或者搜索引起的友好搜索,提高排名等

rewrite语法规则

语法:

rewrite	regex  replacement	[flag]

rewrite:rewrite重写的关键字不可省略

regex:这里写的是正则表达式

replacement:这里是替换内容

flag:这里是flag标记

flag标记说明:



相关符号说明:



文件目录匹配:



rewrite配置实例解析

实例1 :多域名跳转到同一域名

	server{
		listen 80;
		server_name www.toutiao.com toutiao.com ;
		if($host != 'www.jkyst.xyz' ){
			rewrite ^/(.*)$ http://www.toutiao.com/$1 permanent;
		}
		location ~.*\.(png|gif|jpg){
			return 403;
		}
	}

该重写实例含义:

1.浏览器在地址栏访问toutiao.com相当于http://www.toutiao.com/,

2.permanent参数:表示浏览器地址栏地址由toutiao.com转为http://www.toutiao.com/

实例2 :当文件不存在时重定向到指定文件-permanent

	server{
		listen 80;
		server_name www.gofor.com;
		if(!-e $request_filename){
			rewrite  ^/test/(.*)$ http://www.gofor.com/test1/$1 permanent;
		}
	}

当访问 "test" 目录下的文件或目录不存在时,

则跳转到 "test1"下面的此文件或者目录,

跳转后会将URL进行转换(浏览器地址栏地址变更)


实例3 :当文件不存在时重定向到指定文件-last

	server{
		listen 80;
		server_name www.gofor.com;
		if(!-e $request_filename){
			rewrite ^/test/(.*)$ index.html last;
		}
	}

表示当访问 "test" 目录下的文件或目录不存在时,则重定向到 "index.html"文件,

跳转后URl不会进行转换(浏览器地址栏地址不变)

实例4 :当文件不存在时重定向到指定文件

	server{
			listen 80;
			server_name www.gofor.com;
			if(!-e $request_filename){
				rewrite ^/test/([0-9a-z]+)/([0-9a-z]+)/(.*)$ http://www.gofor.com/test/$1$2$3 permanent;
			}
	}

目录切换,表示将原目录转换成其他目录,【0-9a-z】表示转换后目录名称

实例5 匹配用户浏览器代理信息

	server{
		listen 80;
		server_name www.gofor.com;
		if ( $http_user_agent ~* ("Android")|(iPhone)){
			rewrite ^/test/(.*)$ http://www.gofor.com/test/$1  permanent;
		}
	}

表示当匹配到浏览代理为Android和iPhone时进行重定向 "test"目录下的文件,改变访问的地址

php7进阶到架构师相关阅读

https://www.kancloud.cn/gofor/gofor

最后,欢迎大家留言补充,讨论~~~

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1433.html

标签: apache转 nginx
分享给朋友:

“nginx rewrite规则详解(nginx rewrite_by_lua)” 的相关文章

隐藏Nginx服务的Banner 和 隐藏Nginx后端服务指定的header的状态

一、隐藏Nginx服务的Banner当Nginx服务器响应请求时,不隐藏它的版本信息和名称。这会暴露服务器的信息,使攻击者可以获取服务器软件版本和配置的信息,帮助攻击者发现潜在的漏洞或攻击路径。以下是一些潜在的危害:1. 暴露服务器信息:不隐藏 banner 可以让攻击者知道服务器正在使用 Ngin...

Nginx缓存设置教程

这篇文章主要介绍了Nginx缓存设置案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。在...

高性能Linux服务器构建实战:运维监控、性能调优与集群应用

百万级字迹详解实战案例,篇幅因素故只展现pdf目录,完整解析获取方式在篇尾了!目录读者对象Web应用篇(1至第3章)数据备份恢复篇(4至第6章)网络存储应用篇(7和第8章)运维监控与性能优化篇(9和第10章)集群高级应用篇(11至第14章)勘误和支持第1篇 Web应用篇1 、轻量级HTTP服务器Ng...

一起学习Kubernetes:容器和镜像

简述容器每个运行的容器都是可重复的;包含依赖环境在内的标准,意味着无论你在哪里运行它都会得到相同的行为。容器将应用程序从底层的主机设施中解耦。 这使得在不同的云或 OS 环境中部署更加容易。Kubernetes 集群中的每个节点都会运行容器,这些容器构成分配给该节点的 Pod。 单个 Pod 中的容...

博客引擎 hugo intro 入门介绍+安装笔记

拓展阅读blog-engine-01-常见博客引擎 jekyll/hugo/Hexo/Pelican/Gatsby/VuePress/Nuxt.js/Middleman 对比[1]blog-engine-02-通过博客引擎 jekyll 构建 github pages 博客实战笔记[2]blog-e...

Nginx 如何代理转发传递真实 ip 地址?

Nginx 是一个高性能的反向代理服务器,也是一个非常流行的负载均衡器和 HTTP 缓存。其轻量级的设计和高并发处理能力使得它广泛应用于各种 Web 服务中。在使用 Nginx 作为反向代理服务器时,一个常见的问题是如何在代理转发过程中传递客户端的真实 IP 地址。默认情况下,Nginx 会将客户端...