nginx的rewrite的应用场景非常广泛,主要有以下几点:
*可以调整用户浏览的URL,使其看起来更规范,合乎开发及产品人员的需求
*为了让搜索引擎收录网站的内容,并让用户体验更好,一般会将动态URL地址伪装成静态地址提供服务(伪静态技术)
*网站在更换新域名后,让旧域名的访问跳转到新的域名上;比如360buy跳转jd.com
*根据特殊变量,目录,客户端的信息进行url跳转
1.rewrite 指令最后一项参数flag标记:
last 本条规则匹配完成后,继续向下匹配新的lacation URI规则
break 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect 返回302临时重定向,浏览器地址栏会显示跳转后的URI地址
permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URI地址
2.nginx rewrite 301 跳转
rewrite ^/(.*) http://www.test2.com/$1 permanent;
当访问www.mysever2.com地址时,跳转到www.test2.com
curl -s -o /dev/null -l -w "%{http_code}n" http://www.mysever2.com 查看状态码的方法
301
3.实现不同域名跳转
if ( $http_host ~* "^(.*)\.text\.com$") {
set $domain $1;
rewrite ^(.*) http://www.test.com/$domain/index.html break; break不做后面的任何匹配}
curl -s -o /dev/null -l -w "%{http_code}n" http://www.test.com
200 状态码200 说明第一次请求成功
- 实现不同目录的跳转
location / {
root /opt/html;
index index.html index.htm;
}
rewrite ^(.*)/opt/data http://www.mysever2.com/ break;
curl -s -o /dev/null -l -w "%{http_code}n" http://www.mysever2.com/opt/data
302


关于nginx相关的技术会续写!!!!!!!!
