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;
            }
    
    }
    
    
  • 相关阅读:
    您上次已将进行的搜狗输入法的安装或卸载,操作要求重启。您在重启之后才能继续新的输入法安装卸载程序。
    CUDPP主页
    cudaMemcpy2D介绍
    cudaMallocPitch – 向GPU分配存储器
    leanote开源云笔记
    OpenMP常用函数
    PRmakefile文件
    安装gcc,g++
    Getting aCC Error :name followed by "::" must be a class or namespace name"
    acc_set_device_num && acc_get_device_num例程
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13374380.html
Copyright © 2011-2022 走看看