Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx的rewrite(地址重定向)剖析

Nginx的rewrite(地址重定向)剖析

作者头像
kirin
发布于 2020-09-09 06:55:10
发布于 2020-09-09 06:55:10
2.1K00
代码可运行
举报
文章被收录于专栏:Kirin博客Kirin博客
运行总次数:0
代码可运行

1、rewrite语法:

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

默认值:none

应用位置:server、location、if

rewrite是实现URL重定向的重要指令,他根据regex(正则表达式)来匹配内容跳转到replacement,结尾是flag标记

简单的小例子:

1

rewrite ^/(.*) http://www.baidu.com/ permanent;     # 匹配成功后跳转到百度,执行永久301跳转

常用正则表达式:

字符

描述

\

将后面接着的字符标记为一个特殊字符或者一个原义字符或一个向后引用

^

匹配输入字符串的起始位置

$

匹配输入字符串的结束位置

*

匹配前面的字符零次或者多次

+

匹配前面字符串一次或者多次

?

匹配前面字符串的零次或者一次

.

匹配除“\n”之外的所有单个字符

(pattern)

匹配括号内的pattern

rewrite 最后一项flag参数:

标记符号

说明

last

本条规则匹配完成后继续向下匹配新的location URI规则

break

本条规则匹配完成后终止,不在匹配任何规则

redirect

返回302临时重定向

permanent

返回301永久重定向

2、应用场景:

  •  调整用户浏览的URL,看起来规范
  • 为了让搜索引擎收录网站内容,让用户体验更好
  • 网站更换新域名
  • 根据特殊的变量、目录、客户端信息进行跳转

3、常用301跳转:

之前我们通过用起别名的方式做到了不同地址访问同一个虚拟主机的资源,现在我们可以用一个更好的方式做到这一点,那就是跳转的方法

还是用www.brian.com虚拟主机为例子,修改配置文件brian.conf:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@Nginx www_date]# cat brian.conf 

    server {                          # 添加个server区块做跳转

    listen     80;

    server_name  brian.com;

    rewrite ^/(.*) http://www.brian.com/$1 permanent;

    }

    server {

        listen       80;

        server_name  www.brian.com;

        location / {

            root   html/brian;

            index  index.html index.htm;

        }

        access_log logs/brian.log main gzip buffer=128k flush=5s; 

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

 }

检查语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@Nginx conf]# 
[root@Nginx conf]# ../sbin/nginx -t
nginx: the configuration file /opt/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx//conf/nginx.conf test is successful

平滑重启:

1

[root@Nginx conf]# ../sbin/nginx -s reload

windows测试效果:

4、域名跳转:

我们不仅可以做相同虚拟主机的资源域名跳转,也能做不同虚拟主机的域名跳转,我们下面就跳转下当访问brian.com域名的时候跳转到www.baidu.com的页面:

修改www.brian.com虚拟主机的brian.conf配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@Nginx www_date]# cat brian.conf 
    server {
        listen       80;
        server_name  brian.com;
        location / {
            root   html/brian;
            index  index.html index.htm;
        }
    if ( $http_host ~* "^(.*)") {
        set $domain $1;
        rewrite ^(.*) http://www.baidu.com break;
    }
        access_log logs/brian.log main gzip buffer=128k flush=5s; 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 }

windows测试:(访问brian.com 跳转到了www.baidu.com)

朱敬志(brian),成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
015.Nginx重定向
重定向(Redirect)指通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
木二
2020/07/22
6.7K0
04 . Nginx的Rewrite重写
Nginx Rewrite相关指令有重定向rewrite,if 语句,条件判断,全局变量,set,return
iginkgo18
2020/09/27
3.2K0
Nginx 配置详解
地址重写:为了标准化网址,比如输入baidu.com和www.baidu.com,都会被重写到www.baidu.com,而且我们在浏览器看到的也会是 www.baidu.com
白墨石
2022/05/11
6.5K0
Nginx rewrite地址重写
Rewrite在nginx中也叫URL Rewrite,即URL重写,就是把传入Web的请求重定向到其他URL的过程。
用户4396583
2024/07/23
6670
nginx之rewrite模块
rewrite模块的指令有break, if, return, rewrite, set等,其中rewrite是比较关键的。
山行AI
2019/08/12
3K0
Nginx 补充
DR 代理:举例 LVS,请求经过 LVS ,响应直接返回给用户,不用再走一次 LVS
晚上没宵夜
2022/11/14
5350
Nginx---Rewrite
Rewrite是Nginx服务器提供的一个重要基本功能,是Web服务器产品中几乎必备的功能。主要的作用是用来实现URL的重写。
大忽悠爱学习
2021/12/08
1.2K0
Nginx---Rewrite
Linux下Nginx配置SSL以及301重定向
Nginx配置文件,位置/etc/nginx/sites-enabled下的default文件
no怕不了木
2023/10/26
1.4K0
12.9 Nginx域名重定向
Nginx域名重定向目录概要 更改test.com.conf server { listen 80; server_name test.com test1.com test2.com; index index.html index.htm index.php; root /data/wwwroot/test.com; if ($host != 'test.com' ) { rewrite ^/(.*)$ http://test.com/$1 pe
运维小白
2018/02/06
9.4K0
Nginx
Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。
十玖八柒
2022/08/01
4260
Nginx
Nginx系列教程(7)nginx rewrite配置规则详细说明
注:nginx官方文档:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
haikangweishi
2020/04/07
7.6K0
nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理
Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案。nginx可以用轮询、IP哈希、URL哈希等方式调度后端服务器,同时也能提供健康检查功能。目前有众多公司均已经部署使用nginx实现基于七层的负载均衡功能。 1)Nginx负载均衡 为了实现Nginx的反向代理以及负载均衡功能,应用中需要用到两个模块,HttpProxyModule和HttpUpstreamModule模块;其中HttpProxyModule模块的作用是将用户的数据请求转发到其他服
洗尽了浮华
2018/01/23
8.3K0
nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理
nginx rewrite
rewrite的作用 rewrite可以实现url的重定向,把用户请求的url转发到另一个url,但用户浏览器地址并不改变 例如常用的伪静态化,就是通过rewrite实现的 /user/123 =>
dys
2018/04/02
1.2K0
nginx 进行正则匹配(常见正则匹配符号表示)
今天遇到网站之前的url被百度搜索引擎抓取,需要在服务中进行301强制跳转,(如访问:www.baidu.com/kenni-1,www.baidu.com/kenni-1/,两个统一跳转到www.b
botkenni
2019/09/09
36.4K0
Nginx 重定向所有子域名到www
vim .htaccess  或  vim  /var/www/html/.htaccess
阳光岛主
2019/02/18
7.7K0
Nginx 重定向所有子域名到www
Nginx 静态资源访问
如何访问 Nginx 的静态资源?这其中涉及到了 Nginx 的核心功能 Rewrite 重写技术,本内容将讲解处理访问静态资源的相关知识。
用户9615083
2022/12/25
8.3K0
Nginx 静态资源访问
第八章·Nginx实现Rewrite重写
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
7510
第八章·Nginx实现Rewrite重写
【NGINX入门】6.Nginx的rewrite规则详解
nginx Rewrite规则可以让网站的url中达到某种状态时定向/跳转到某个规则,本文具体介绍这些规则和说明。
辉哥
2021/02/04
5.1K0
盘点Linux运维常用工具(二)-web篇之nginx
#查看地址:https://w3techs.com/technologies/overview/web_server/all
老油条IT记
2020/03/20
9080
Nginx Location和Rewrite深入剖析
Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block,而location是Nginx配置中的一个指令,用于访问的URL匹配,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。
星哥玩云
2022/07/26
8880
相关推荐
015.Nginx重定向
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验