nginx重定向rewrite

nginx重定向rewrite  erver{    listen 80;    server_name www.zls.com zls.com;    root /mobile_pc;    index index.html; 为什么要使用rewrite  rewrite介绍  引入rewrite

引入rewrite

vim /etc/nginx/conf.d/mobile_pc.conf 

server{
    listen 80; 
    server_name www.zls.com zls.com;
    root /mobile_pc;
    index index.html;
    if ( $http_user_agent ~* "Android" ){
        rewrite ^/$ http://$host/android redirect;
    }   
    if ( $http_user_agent ~* "iPhone|iPad" ){                                                                                          
        rewrite ^/$ http://$host/ios redirect;
    }   
}

rewrite介绍

1.什么rewrite?

将浏览器,发送到服务器的请求(url),根据规则重写,返回给用户

到底要干什么:就是修改url

为什么要修改url:为了安全,为了提高用户的体验

2.为什么要使用rewrite

就是为了修改URL,从而提高用户的体验

rewrite作用:

1.80强转443(提高用户的体验)

2.匹配客户端规则,返回对应页面(提高用户的体验)

3.伪静态(SEO)

什么是伪静态?

原本的动态也面,需要调用数据库,但是在浏览器中的url里,返回的是一个静态页面以html,css,js,shtml

为什么要做伪静态?

1.安装

2.为了SEO

3.如何使用rewrite

Rewrite标记Flag

rewrite指令根据表达式来重定向URL,或者修改字符串,可以应用于server,location,if环境下,每行rewrite指令最后跟一个flag标记,支持的flag标记有如下表格所示:

flag 作用
last 本条规则匹配完成后,停止匹配,不再匹配后面的规则
break 本条规则匹配完成后,停止匹配,不再匹配后面的规则
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
server {
        listen 80;
        server_name r.drz.com;
        root /code;

        location /abc {
                rewrite (.*) /ccc/bbb/2.html redirect;
        }
        location /2018 {
                rewrite ^/2018/(.*) /2014/$1 redirect;
        }
        location / {
                #rewrite 正则   替换内容  redirect;
                #rewrite 正则   /course/11/22/33/course_33.html  redirect;
                rewrite ^/couese-(.*)-(.*)-(.*).html$   /course/$1/$2/$3/course_$3.html  redirect;
                # 不仅是不灵活,需求写死了,永远都是一个页面
                #rewrite ^/couese-(.*)  /course/11/22/33/course_33.html  redirect;
        }

}
上一篇:16@nginx之rewrite(重定向)


下一篇:【django】另一种思路代替nginx 的rewrite