zoukankan      html  css  js  c++  java
  • nginx的http模块

    html的页面

    [root@python html]# echo first > first/1.txt
    [root@python html]# echo second  > second/1.txt
    [root@python html]# echo third  > second/1.txt
    [root@python html]# echo second  > second/1.txt
    [root@python html]# echo third  > third/1.txt
    

    url地址重写

    rewrite模块:rewrite指令

    sysntax : rewrite  regex replacement  [flag];

    Default:   -

    Context:  server,location,if

    功能:

    将regex指定的URL替换成replacement这个新的url可以使用正则表达式

    当replacement以http://或者https://或$schema开头,则直接返回302重定向

    替换后的url根据flag指定的方式进行处理

    last:用replacement这个url进行新的location匹配

    break:break指令是停止当前脚本指令的执行,等价于独立的break指令

    redirect:返回302重定向(临时重定向)

    permanent:返回301重定向(永久重定向)

    server {
            server_name haha.com;
            listen 8080;
            error_page 404 /403.html;
            #return 405;
            location /{
                    #return 404 "find nothing!
    ";
            }
    	root html/;
    	location /first {
    		rewrite /first(.*) /second$1 last;  
    		return 200 1first!
    ';
    		}
    	location /second {
    		#rewrite /second(.*) /third$1 break;
    		rewrite /second(.*) /third$1;
    		return 200 'second!
    ';
    		}
    	location /third {
    		return 200 'third!
    ';
    	}
    }
    

      测试

    [root@python vhast]# curl haha.com:8080/first/1.txt
    second!
    

      修改配置

    [root@python vhast]# cat test.conf 
    server {
            server_name haha.com;
            listen 8080;
            error_page 404 /403.html;
            #return 405;
            location /{
                    #return 404 "find nothing!
    ";
            }
    	root html/;#到这里找请求的资源
    	location /first {
    		rewrite /first(.*) /second$1 last;
    		return 200 1first!
    ';
    		}
    	location /second {
    		rewrite /second(.*) /third$1 break;  表示跳出指令块后
    		#rewrite /second(.*) /third$1;
    		return 200 'second!
    ';
    		}
    	location /third {
    		return 200 'third!
    ';
    	}
    }
    

      测试

    [root@python vhast]# curl haha.com:8080/first/1.txt
    third
    

      修改配置

    server {
            server_name haha.com;
            listen 8080;
            error_page 404 /403.html;
            #return 405;
            location /{
                    #return 404 "find nothing!
    ";
            }
            root html/;
            location /first {
                    rewrite /first(.*) /second$1 last;
                    return 200 1first!
    ';
                    }
            location /second {
                    #rewrite /second(.*) /third$1 break;
                    rewrite /second(.*) /third$1 last;  # 用替换后的继续匹配
                    return 200 'second!
    ';
                    }
            location /third {
                    return 200 'third!
    ';  # 匹配到这个资源
            }
    }
    

      测试

    [root@python vhast]# curl haha.com:8080/first/1.txt
    third!
    

      修改配置

    server {
            server_name haha.com;
            #listen 8080;
            error_page 404 /403.html;
            #return 405;
            location /{
                    #return 404 "find nothing!
    ";
            }
            root html/;
            location /first {
                    rewrite /first(.*) /second$1 last;
                    return 200 1first!
    ';
                    }
            location /second {
                    #rewrite /second(.*) /third$1 break;
                    rewrite /second(.*) /third$1 last;
                    return 200 'second!
    ';
                    }
            location /third {
                    return 200 'third!
    ';
            }
            location /redirect1 {
                    rewrite /redirect1(.*) $1 permanent; #301
            }
            location /redirect2 {
                    rewrite /redirect2(.*) $1 redirect; #302
            }
            location /redirect3 {
                    rewrite /redirect3(.*) http://haha.com:$1;  #302;继承上一个
            }
            location /redirect4 {
                    rewrite /redirect4(.*) http://haha.com:$1 permanent; #301
            }
    }
    

      测试

    [root@python vhast]# curl haha.com/redirect1
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx/1.15.9</center>
    </body>
    </html>
    [root@python vhast]# curl haha.com/redirect2
    <html>
    <head><title>302 Found</title></head>
    <body>
    <center><h1>302 Found</h1></center>
    <hr><center>nginx/1.15.9</center>
    </body>
    </html>
    [root@python vhast]# curl haha.com/redirect3
    <html>
    <head><title>302 Found</title></head>
    <body>
    <center><h1>302 Found</h1></center>
    <hr><center>nginx/1.15.9</center>
    </body>
    </html>
    [root@python vhast]# curl haha.com/redirect4
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx/1.15.9</center>
    </body>
    </html>
    
    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    安装pipenv
    ModuleNotFoundError: No module named 'pip._internal' , pip 无法下载软件 解决办法
    1.3用户列表 and 新闻列表
    1.2用户统计页面实现
    1.5发布新闻
    七牛云平台(存储图片)
    1.2头像设置功能
    1.4用户收藏展示
    1.3密码修改
    1.2首页刷新以及点击排行
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/11153001.html
Copyright © 2011-2022 走看看