Nginx配置之URL重写

URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的UR是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读。

URL重写和反向代理的区别是会改变访问的地址,也就是用户会察觉到

URL 模块语法
set    设置变量
if    负责语句中的判断
return   返回返回值或URL
break    终⽌后续的rewrite规则
rewrite   重定向URL
1.set指令
set指令  ⾃定义变量
set $variable value;

示例:
将任意匹配  重写为 http://www.ayitula.com/baism
location / {
	set $name baism;
	rewrite ^(.*)$ http://www.ayitula.com/$name;
}
2.if指令
if 指令 负责判断
if (condition) { ... }

示例:
如果是使用chrome访问就返回403
location / {
	root html;
	index index.html index.htm;
	if ($http_user_agent ~* 'Chrome') {
		return 403;
		#return http://www.jd.com;
	}
}
3.return
return 指令  定义返回数据
return code [text];
return code URL;
return URL;

示例:
如果是使用chrome访问就返回403
location / {
	root html;
	index index.html index.htm;
	if ($http_user_agent ~* 'Chrome') {
		return 403;
		#return http://www.jd.com;
	}
}
4.break
break 指令   停⽌执⾏当前虚拟主机的后续rewrite指令集

示例:
就算是使用chrome访问也不返回403
location / {
	root html;
	index index.html index.htm;
	if ($http_user_agent ~* 'Chrome') {
		break;
		return 403;
	}
}
5.rewrite
rewrite   [flag];
关键字   正则   替代内容   flag标记

flag:
	last  #本条规则匹配完成后,继续向下匹配新的location URI规则
	break  #本条规则匹配完成即终⽌,不再匹配后⾯的任何规则
	redirect  #返回302临时重定向,浏览器地址会显示跳转后的URL地址
	permanent  #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
示例
域名跳转
www.ayitula.com   重写为  www.jd.com

server {
	listen 80;
	server_name www.ayitula.com;
	location / {
		rewrite ^/$ http://www.jd.com permanent ;
	}
}

你可能感兴趣的:(Nginx)