10 Nginx Rewrite配置

本文详细介绍了Nginx的Rewrite配置,包括语法、正则表达式字符、flag标记和企业应用场景,提供了实例解析与实战301重定向的应用。
摘要由CSDN通过智能技术生成

1. 介绍

和Apache等web服务软件一样,Nginx Rewrite的主要功能也是实现URL地址重写,Nginx的 Rewrite规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配的,前文在安装Nginx软件时就已经安装了这个PCRE软件,以及让Nginx支持Rewrite的功能,默认参数编译 Nginx就会安装支持Rewrite的模块,但是,也必须要PCRE软件的支持。

2. 语法

指令语法:rewrite regex replacement [flag];

默认值:none

应用位置:server、location、if

       rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是flag标记。下面是一个简单的URL Rewrite跳转的例子:


rewrite ^/(.*) http://www.sancheng.org/$1 permanent;
解释


在上述指令中,rewrite为固定关键字,表示开启一条rewrite匹配规则,regex部分是^/(.*),这是一个正则表达式,匹配所有,匹配成功后跳转到http://www.sancheng.org/$1,这里
的$1是取前面regex部分()里的内容,结尾permanent;表示永久301重定向标记,即跳转到后面的
http://www.sancheng.org/$1地址上。

2.1 例子1

server {
    listen       80;
    server_name  www.abc.org;
    location / {
         rewrite ^/(.*) https://www.sancheng.cn/$1 permanent;
    }
    access_log  logs/www_access.log main;
}
解释

当用户访问 www.abc.org的就自动跳转到了https://www.caimengzhi.cn 去了。
如果这样访问www.abc.org/test.html 就跳转成https://www.sancheng.cn/test.html。
$1取的是括号(.*)里面的内容,也就是test.html。 

2.2 例子2

server {
    listen       80;
    server_name  www.abc.org;
    location / {
              root html/www;
              index index.html;
    }
    location ^~ /images/ {
         rewrite ^/(.*) https://www.sancheng.cn/$1 permanent;
    }
    access_log  logs/www_access.log main;
}
解释

用户访问www.abc.org访问网站正常显示,访问www.abc.org/test.html的时候也正常显示。
只有当用户访问www.abc.org/images/test.jpg 的时候,只要带有images这个路径就跳转,这里跳转到https://www.sancheng.cn/images/test.jpg 。

3. Rewrite regex常用正则表达式字符

在这里插入图片描述

4. rewrite指令结尾flag标记说明

在这里插入图片描述

5. Nginx Rewrite的企业应用场景

Nginx的Rewrite功能在企业里应用非常广泛:

可以调整用户浏览的URL,看起来更规范,合乎开房及产品人员的需求。
为了让搜索引擎收录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务
网站换新域名后,让旧的域名的访问跳转到新的域名上,例如:京东的360buy.com换成jd.com
根据特殊变量、目录、客户端的信息进行URL跳转等。

6. 企业实战301

公司换新域名,需要做301永久重定向,老域名为: www.360buy.com 新域名为:www.jd.com 配置信息如下:


server {
    listen       80;
    server_name  www.360buy.com;
    rewrite ^/(.*) http://www.jd.com/$1 permanent;
}
server {
    listen      80;
    server_name  www.jd.com jd.com;
    location / {
        root html/www;
        index index.php index.html;
    }
}
当用户访问 www.360buy.com的时候,就自动跳转到了https://www.jd.com上,实现了301永久重定向。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值