nginx 301 302重定向跳转配置 (一般都做301,对seo好)
http://www.3lian.com/edu/2013/07-01/77550.html
首先看一个完整代码示例,关于nginx 301 302跳转的。
301跳转设置:
server {
listen 80;
server_name downcc.com;
rewrite ^/(.*) http://www.downcc.com/$1 permanent;
access_log off;
}
302跳转设置:
server {
listen 80;
server_name downcc.com;
rewrite ^/(.*) http://www.downcc.com/$1 redirect;
access_log off;
}
在看下关于nginx 301 302跳转的详细说明文档
server {
server_name downcc.com;
rewrite ^/(.*) http://www.downcc.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.downcc.com www.test1.com;
if ($invalid_referer) {
return 404;
}
}
nginx 301 302重定向跳转配置 (一般都做301,对seo好)相关推荐
- scrapy 解决Redirecting 301 302重定向问题
在使用Scrapy框架中URl被重定向,总是遇到这类问题: DEBUG: Redirecting (301/302) to <GET https://XXXX refer https://XXX ...
- Nginx 301 302重定向
# 301 永久重定向到https server {server_name xxx.com;rewrite ^(.*)$ https://$host$1 permanent; } # 302 临时重定 ...
- Nginx网站常见的跳转配置实例
相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话,你会对nginx的rewrite又爱又恨,爱它是因为你搞定了它,完成了开发人员的跳转需求后你会觉得很爽,觉得真的很强大,恨它是因 ...
- php如何实现302重定向,php 301 302重定向实现代码
很多网站的站长们都喜欢把前台的顶级域名301重定向到带有www的二级域名上,或者带www的二级域名重定向到顶级域名上,以集中权重.而在网站的后端设计中,一些页面的提交跳转则需要使用到302重定项.关于 ...
- PHP的301,302自动跳转代码
301重定向就是页面永久性移走的意思,搜索引擎知道这个页面是301重定向的话,就会把旧的地址替换成重定向之后的地址. 302重定向就是页面暂时性转移,搜索引擎处理302的话,不会将旧的地址替换成新的地 ...
- php如何制作301跳转,PHPWind论坛如何做301跳转
做SEO的大家都知道,网址的首选域要统一非常重要.也就是比如网站绑定了两个域名,包括带www的和不带www的,那么要选择一个作为主要域名做推广,那么就需要将另外一个域名301跳转到主域名. 如果服务器 ...
- 【nginx】return 301 302 重定向URL
前言 nginx version: nginx/1.18.0 CentOS Linux release 7.6.1810 (Core) 301 方法1:rewrite location /t1/res ...
- Nginx rewrite 301 永久重定向跳转
(1)实现http://blog.klaus.org跳转到http://www.klaus.org/blog/klaus.html 跳转前,http://blog.klaus.org对应的站点配置(前 ...
- http302重定向 缓存_如何清除301/302重定向缓存
http302重定向 缓存 我认为许多Web开发人员和服务器管理员都面临着301重定向缓存. 在学习课程之前,我经常面对它. 我希望它能对您有所帮助,您可以从我这里学到一些东西,而不是从自己的错误中学 ...
最新文章
- linux 判断某个命令是否安装
- Unicode编码完全探究(三)之联通乱码
- python的函数_Python 返回函数+匿名函数
- python怎么实现图像去噪_基于深度卷积神经网络和跳跃连接的图像去噪和超分辨...
- 我的世界python俄罗斯方块手机版下载_欢乐俄罗斯方块
- RocketMQ(一)——发展历程及基本概念
- 指定输出路径_新版Creo输入输出配置不用愁,果断收藏本文就对了
- 如何在Ubuntu 14.10 上安装WordPress?
- 支持64位的打印服务器,使用环境打印服务器是32位,添加共享的计算机是64位
- jQuery文档加载完毕的几种写法
- java 在某个时间段定时_Java 在某一个时间点定时执行任务(转载)
- java线程池——逐步分析
- Java-KoTime:接口耗时监测与邮件通知接口耗时情况
- 3000字告诉你如何渡过程序员菜鸟时期
- 【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境
- 解决本地请求跨域问题,替换代理,Whistle + chrome扩展工具SwitchyOmega
- renren-generator:运行报错java: 找不到符号 符号: 类 Longblob
- 树莓派:双色LED灯实验
- Win7Codecs+设置程序中英文对照
- div布局系列 - 两端对齐的方法