首先看一个完整代码示例,关于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;
}

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

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

转载于:https://blog.51cto.com/navyaijm/1200902

ngnx 301 302跳转配置方法相关推荐

  1. 如何知道服务器支持301,301页面跳转的方法---从服务器上设置方法

    1.你的网站在做域名解析时,经常会解析2个域名,即带www的和不带www的.这样做的目的是,当用户使用不带www的域名时,也可以正常访问你的网站.但是这样做的后果是,你站点主域名的pr值分散到其他几个 ...

  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. php301重定向跳转,php如何设置301重定向跳转

    php设置301重定向跳转的方法:在跳转前设置状态码[header( "HTTP/1.1 301 Moved Permanently" );header("Locatio ...

  5. SSRF(10)302跳转 Bypass

    题目描述:SSRF中有个很重要的一点是请求可能会跟随302跳转.尝试利用这个来绕过对IP的检测,访问到位于127.0.0.1的flag.php吧. 相关知识 什么是HTTP 302 跳转? 首先我们要 ...

  6. 页面跳转的方法以及301 和 302的区别

    前言 在web开发的时候经常会遇到页面重定向的问题,说起重定向就不得不说HTTP STATUS CODE 301 和302. 301 是Moved Permanently,也就是"永久转移& ...

  7. 配置跳转指定_http自动跳转https的配置方法

    这篇文章主要介绍了http自动跳转https的配置方法,需要的朋友可以参考下 IIs中实现Http自动转换到Https方法介绍 (403跳转对SEO有一定影响) 1.下载安装URL重写模块:Micro ...

  8. 301 302区别_302状态码代表什么,302状态码解决方法

    302是HTTP协议中的一个状态码(Status Code).可以简单的理解为该资源原本确实存在,但已经被临时改变了位置:换而言之,就是请求的资源暂时驻留在不同的URI下,故而除非特别指定了缓存头部指 ...

  9. 网站服务器如何配置跳转,http自动跳转https的配置方法

    IIs中实现Http自动转换到Https方法介绍 (403跳转对SEO有一定影响) 1.下载安装URL重写模块:Microsoft URL Rewrite Module 32位:http://down ...

最新文章

  1. vue @click 绑定多个方法 执行顺序_Vue干货,学完这些就够用了
  2. linux开放2280端口,威联通推出适用于NAS/PC的双端口 M.2 2280 PCIe NVMe SSD含双端口2.5GbE扩展卡...
  3. PAT甲级1074 Reversing Linked List :[C++题解]反转链表,借用vector
  4. Python 中文分词(结巴分词)
  5. java将HTML文件转化为pdf文件,如何使用Java将HTML网页转换为PDF文件
  6. DBMS-数据库设计与E-R模型:E-R模型、约束、E-R图、E-R扩展特性、E-R图转换为关系模式、UML建模...
  7. HttpClient4.5使用RequestConfig配置连接信息
  8. 使用gdaldem生成山体阴影——thematicmapping.org译文(二)
  9. java 53个关键字_java的保留(53个)关键字v11.docx
  10. python 读取并显示图片的两种方法
  11. 苹果笔记本能玩英雄联盟吗_等了一整年的英雄联盟手游,终于能玩了!
  12. 民建李汉宇:运用大数据为监察体制改革插上科技翅膀
  13. 程序猿生存指南-57 故友来京
  14. 介孔二氧化硅纳米粒子应用在组织工程
  15. OSChina 周三乱弹 ——我就爱吃月饼,就爱抢月饼。我高兴。
  16. python微信远程控制摄像头_【python版】利用微信远程控制你的电脑
  17. python webkit内核_360浏览器使用meta标签强制使用指定webkit内核 - meta强制用极速模式...
  18. 【数据库的备份与还原】
  19. Android键盘和触摸事件处理
  20. 3月18日面试题复盘

热门文章

  1. JavaEE 设计模式
  2. Oracle Discover产品简介
  3. 不会自动更新了_手机老是自动更新系统?不想频繁更新,不同手机怎么设置好?...
  4. MySQL 高级 - 触发器 - 查看及删除
  5. Nginx 和 Zuul 的区别
  6. hashCode和equals方法的关系
  7. Zookeeper的来源
  8. Redis中的Sentinel故障转移
  9. 什么是Eureka注册中心
  10. SpringBoot高级-任务-定时任务