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

301跳转设置:server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 permanent;
access_log off;
}302跳转设置:server {
listen 80;
server_name 123.com;
rewrite ^/(.*) http://456.com/$1 redirect;
access_log off;
}

配置文件

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

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

配置文件

3、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;
}
}

配置文件

转载于:https://www.cnblogs.com/xiangsikai/p/8394874.html

Nginx 301与302配置相关推荐

  1. nginx 301和302的区别与设置

    什么是301跳转 301跳转也叫301重定向,也叫301转向,也叫301永久重定向,是网站建设过程中的一个功能.一般用于2个域名指向同一个网站. 一般来说,利用跳转,对网站的排名不会有影响.但不会转移 ...

  2. nginx 301 302重定向跳转配置 (一般都做301,对seo好)

    http://www.3lian.com/edu/2013/07-01/77550.html 首先看一个完整代码示例,关于nginx 301 302跳转的. 301跳转设置: server { lis ...

  3. apache 和 nginx 301重定向配置方法

    http://jianzi0307.blog.163.com/blog/static/20812002010021115746160/ apache 和 nginx 301重定向配置方法 Linux ...

  4. php nginx 301重定向,nginx实现http协议301、302重定向

    最近在配合其他团队对网站进行seo方面的优化,其中建议需要对url进行大量301修改,基本就是将原来的较长的url重新定向到一个比较短的url,提高对搜索引擎的友好程度,如果发现你的网页从一个很精简的 ...

  5. nginx中301和302重定向之间的区别

    首先客户端浏览器的URL都会改变: 302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址.因为服务器返回302,所以搜索引擎会认为新的网址是暂时的: 301重定向是永久的重定向,搜索引擎会 ...

  6. Nginx 301重定向域名

    原文地址为: Nginx 301重定向域名 为何要使用301重定向 在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变等.如果不做重定向,用户的收藏和 ...

  7. nginx正向代理的配置及实现

    正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理. 目前现状:只有1个机器能上网(we ...

  8. Nginx的部署与配置

    Nginx 简介 Nginx是一款自由的.开源的.高性能的HTTP服务器和 反向代理 服务器:同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理 ...

  9. 入门学习Nginx代理服务器?就看这篇Nginx进阶学习最佳配置实践指南

    前置基础知识学习 1.Nginx基础安装与配置详细 https://blog.weiyigeek.top/2019/9-1-121.html 2.Nginx进阶学习之最佳配置实践指南 https:// ...

最新文章

  1. Codechef REBXOR[dp+字典树]
  2. windows下安装python
  3. openfire开发文档
  4. linux usr g 空间不足,centos 磁盘空间不足
  5. Elasticsearch中的Multi Match Query
  6. mysql日期条件如何应用_MySQL如何使用时间作为判断条件
  7. eplan连接定义点不显示_EPLAN电气图实例--控制柜(控制面板)
  8. C++学习系列笔记(六)
  9. java sendto,Android:套接字-java.net.SocketException:sendto失败:EPIPE(管道断开)
  10. WebService学习总结(1)——WebService相关概念
  11. system单元的几个内存处理方法
  12. Python读取IRIS数据集并转换为PaddlePaddle中使用的reader
  13. 数据挖掘-二手车价格预测 Task04:建模调参
  14. Java基础:查漏补缺
  15. ic卡识别程序c语言,如何读写接触式IC卡
  16. 钰泰ETA6002,2.5A,3MHz开关充电器,带路径管理
  17. Android 清理app缓存数据的方法
  18. word 插入公式附加右侧编号方法
  19. HDU 5037 贪心
  20. 【职场版】《漫漫邮子路(一)--走出你身处的“盒子”——朱斌》

热门文章

  1. Python配置pip国内镜像源
  2. linux cat EOF使用示例
  3. 配置CentOS 7阿里云镜像源
  4. Dockerfile自定义tomcat镜像
  5. Zuul网关原理及源码解读(草稿版)
  6. centos 6.7 ssh免密登录配置
  7. xshell 7 官网免费下载
  8. VC6.0显示代码行号
  9. Windows10 编译 Open3D 时出现 error C2220: 以下警告被视为错误 (编译源文件
  10. matlab oqpsk,如何用MATLab画OQPSK星座?