nginx 301 302跳转配置方法 与 总结

简介:

首先看一个完整代码示例,关于nginx 301 302跳转的。

301跳转设置:

1
2
3
4
5
6
server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http: //456 .com/$1 permanent;
access_log off;
}


302跳转设置:

1
2
3
4
5
6
server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http: //456 .com/$1 redirect;
access_log off;
}

在看下关于nginx 301 302跳转的详细说明文档

1
2
3
4
     server {
     server_name  test .com;
     rewrite ^/(.*) http: //www .test1.com/$1 permanent;
     }


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


    Nginx的重定向用到了Nginx的HttpRewriteModule,下面简单解释以下如何使用的方法:
    rewrite命令
    nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下:
    rewrite 正则表达式 替换目标 flag标记
    flag标记可以用以下几种格式:
    last – 基本上都用这个Flag。
    break – 中止Rewirte,不在继续匹配
    redirect – 返回临时重定向的HTTP状态302
    permanent – 返回永久重定向的HTTP状态301

    特别注意:

    last和break用来实现URL重写,浏览器地址栏的URL地址不变,但是在服务器端访问的路径发生了变化;

    redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址;


    例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,$2对应第二个括号(.*)中对应的字符串:
    location /download/ {
    rewrite ^(/download/.*)/m/(.*)\..*$ $1/nginx-rewrite/$2.gz break;
    }
    nginx重定向的IF条件判断

    在server和location两种情况下可以使用nginx的IF条件判断,条件可以为以下几种:
    正则表达式

    如:
    匹配判断
    ~ 为区分大小写匹配; !~为区分大小写不匹配
    ~* 为不区分大小写匹配;!~为不区分大小写不匹配
    例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:
    if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /nginx-ie/$1 break;
    }
    文件和目录判断
    -f和!-f判断是否存在文件
    -d和!-d判断是否存在目录
    -e和!-e判断是否存在文件或目录
    -x和!-x判断文件是否可执行
    例如下面设定nginx在文件和目录不存在的时候重定向:
    if (!-e $request_filename) {
    proxy_pass http://127.0.0.1;
    }
    return

    返回http代码,例如设置nginx防盗链:
    location ~* \.(gif|jpg|png|swf|flv)$ {
    valid_referers none blocked www.test.com www.test1.com;
    if ($invalid_referer) {
    return 404;
    }
    }

本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1735296


相关文章
|
4月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
248 7
|
2月前
|
存储 应用服务中间件 Linux
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
69 4
|
4月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
240 61
|
4月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
255 60
|
4月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
332 60
|
3月前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
118 5
|
4月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
3月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
198 3
|
4月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
1317 1
|
应用服务中间件 nginx
nginx 跳转指定接口
<div class="markdown_views"> <p>nginx 跳转指定接口 <br> 场景: <br> 进行stub测试时,程序访问的不是真正的接口,而是stub接口(提供假数据). <br> 但是程序中写的域名,不可能写stub的ip. <br> 如果写死stub的ip,那么到时候上线时还得改代码.(只要动代码,就是有风险的) <br> 所以就需要做一个映射.
2042 0