zoukankan      html  css  js  c++  java
  • day 42 作业

    第41题

    概念题:
    1.location和rewrite的区别
    Nginx location 可以控制访问网站的路径,但是一个server可以有多个location配置。
    
    rewrite 指令可以基于用户请求的RUI通过正则表达式的匹配来进行改写。
    rewrite 指令可以存在多条,并且按照次序依次执行
    rewrite 指令可以根据flag标志符对指令进一步处理。
    如果替换字符串以‘http://’,"https://"或“$scheme”开头,则处理将停止,并将重定向返回到客户端。
    rewrite 指令可以作用于server,location,if
    
    2.301和302的区别
    301是永久跳转 permanent
    302是临时跳转 redirect
    
    
    3.last和break的区别
    last 本条规则匹配完成后,继续向下匹配新的location URI规则
    1.last标记在本条规则匹配完成后,对其所在的server标签重新发起修改后的URL请求,再次匹配location
    2.使用last和break,浏览器显示的还是原来的URL,由服务器内部完成跳转。
    
    
    break 本条规则匹配完成即终止,不再匹配后面的任何规则
    
    
    环境准备:
    mkdir /code/blog/iphone -p
    mkdir /code/blog/chrome -p
    mkdir /code/blog/pc -p
    mkdir /code/img/images -p
    
    echo iphoneeeee > /code/blog/iphone/2021-11-25-linux.txt
    echo chromeeeee > /code/blog/chrome/2021-11-25-linux.txt
    echo pcccccc > /code/blog/pc/2021-11-25-linux.txt
    
    试验题:
    iphone用户:
    访问   	 www.oldboy.com/txt/2021/11/25/linux.txt 
    302跳转   blog.oldboy.com/iphone/2021-11-25-linux.txt
    访问内容   iphoneeeee
    
    chrome用户:
    访问      www.oldboy.com/txt/2021/11/25/linux.txt
    302跳转   blog.oldboy.com/chrome/2021-11-25-linux.txt
    访问内容   chromeeeee
    
    其他用户:
    访问      www.oldboy.com/txt/2021/11/25/linux.txt
    302跳转   blog.oldboy.com/pc/2021-11-25-linux.txt
    访问内容   pcccccc
    
    所有用户:
    访问:	  www.oldboy.com/img/2021/11/25/linux.jpg
    302跳转   img.oldboy.com/images/2021-11-25-linux.jpg
    内部跳转   img.oldboy.com/images/linux-20211125.jpg
    

    if.conf

    server {
        listen       80 ;
        server_name  www.oldboy.com;
    
        location /txt {
            #客户端类型完全匹配iphone
            if ($http_user_agent = iphone) {
               rewrite ^/txt/([0-9]+)/([0-9]+)/([0-9]+)/(.*).txt$ http://blog.oldboy.com/iphone/$1-$2-$3-$4.txt redirect;
                                            }
            #客户端类型不区分大小写匹配
            if ($http_user_agent ~* Chrome) {
               rewrite ^/txt/([0-9]+)/([0-9]+)/([0-9]+)/(.*).txt$ http://blog.oldboy.com/chrome/$1-$2-$3-$4.txt redirect;
                                             }
            #都没匹配上则执行下面语句
            rewrite ^/txt/([0-9]+)/([0-9]+)/([0-9]+)/(.*).txt$ http://blog.oldboy.com/chrome/$1-$2-$3-$4.txt redirect;
    
    
                       }
    
    
        location /img {
            #所有用户
            rewrite ^/img/([0-9]+)/([0-9]+)/([0-9]+)/(.*).jpg$ http://img.oldboy.com/images/$1-$2-$3-$4.jpg redirect;
            
                    }
         }
    

    blog.conf

    server   {
        listen       80;
        server_name  blog.oldboy.com        ;
        location /iphone {
          root /code/blog/;
          index index.html;
                          }
        location /chrome {
          root /code/blog/;
          index index.html;
                          }
        location /pc {
          root /code/blog/;
          index index.html;
                    }
    
              }
    
    

    img.conf

    server   {
        listen       80;
        server_name  img.oldboy.com        ;
        location /images {
          root /code/img/;
          index index.html;
    	  rewrite ^/img/([0-9]+)/([0-9]+)/([0-9]+)/(.*).jpg$ /images/$4-$1$2$3.jpg break;
        }
    }
    
  • 相关阅读:
    Netty学习路线总结
    Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)
    httpClient
    [翻译]Javaslang 介绍
    Docker学习<一>--初体验Windows环境下安装
    Spring @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
    IntelliJ IDEA 2016.2激活方法
    解决mac升级后,出现的 xcrun: error: invalid active developer path, missing xcrun 错误
    Logstash 安装与配置
    【JVM学习笔记】双亲委托机制存在的意义
  • 原文地址:https://www.cnblogs.com/zhaocheng690/p/15609769.html
Copyright © 2011-2022 走看看