nginx 域名跳转

nginx实现二级域名跳转:

nginx下301跳转设置

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

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

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

location/download/{
rewrite^(/download/.*)/m/(.*)\..*$$1/nginx-rewrite/$2.gzbreak;
}

nginx重定向的IF条件判断
在server和location两种情况下可以使用nginx的IF条件判断,条件可以为以下几种:
正则表达式
如:
匹配判断
~为区分大小写匹配;!~为区分大小写不匹配
~*为不区分大小写匹配;!~为不区分大小写不匹配
例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

if($http_user_agent~MSIE){
rewrite^(.*)$/nginx-ie/$1break;
}

文件和目录判断
-f和!-f判断是否存在文件
-d和!-d判断是否存在目录
-e和!-e判断是否存在文件或目录
-x和!-x判断文件是否可执行
例如下面设定nginx在文件和目录不存在的时候重定向:

if(!-e$request_filename){
proxy_passhttp://127.0.0.1;
}
return

返回http代码,例如设置nginx防盗链:

location~*\.(gif|jpg|png|swf|flv)${
valid_referersnoneblockedwww.test.comwww.test1.com;
if($invalid_referer){
return404;
}
}

你可能感兴趣的:(跳转,301)