zoukankan      html  css  js  c++  java
  • nginx重定向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;
            }
    
    }
    
    
  • 相关阅读:
    js 中读取JSON的方法探讨
    git 教程 git.oschina.net
    JS实现页面跳转重定向的几种方式
    AngularJs 学习
    firebug js版
    emmt html生成
    idea sass scss配置
    关于idea激活
    sublime text There are no packages 解决!
    js监听滚动条事件
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13374380.html
Copyright © 2011-2022 走看看