zoukankan      html  css  js  c++  java
  • nginx rewrite目录对换

    /123/xxx----->xxx?id=123

    [root@web01 default]# pwd
    /app/www/default
    [root@web01 default]# tree 123
    123
    └── sss
        └── index.html
    
    1 directory, 1 file
    [root@web01 default]# cat 123/sss/index.html 
    cheshi
    [root@web01 default]# cat /app/server/nginx/conf/rewrite/default.conf 
    #rewrite ^/index.html /index.php last;
    #if (!-e $request_filename) rewrite ^/(.*)$ index.php last;
    #if (!-e $request_filename) {rewrite ^/(.*)$ /index.php last;}
    #if (!-e $request_filename) {return 404;}
    #if ($http_user_agent ~ Firefox) {rewrite ^(.*)?$ /nginx-Firefox/$1 break;}
    #if ($http_user_agent ~ MSIE) {rewrite ^(.*)$ /nginx-MSIE/$1 break;}
    rewrite ^/(d+)/(.+)/ /$2?id=$1 last;
    #在这里我犯了个要命的错误,这里匹配的是真实的URI,而我却认为是区配的URL,所以一直没能实现!!!
    #后来,我发现,还有一个大的“我不知道!!!(要真正明白什么是目录对换)
    [root@web01 default]# ls
    123  sss
    http://192.168.1.24/sss/?id=123
    #根下的sss才是真正的请求的目录!!!!
    [root@web01 default]# echo "根下的sss才是请求的真正的目录" > /app/www/default/sss/index.html
    [root@web01 default]# curl http://192.168.1.24/sss/?id=123
    根下的sss才是请求的真正的目录

    最后得出只留网站根目录下的 sss即/app/www/default/sss/index.html

    [root@web01 default]# tree /app/www/default/
    /app/www/default/
    └── sss
        └── index.html
    
    1 directory, 1 file
    [root@web01 default]# cat /app/server/nginx/conf/rewrite/default.conf 
    #rewrite ^/index.html /index.php last;
    #if (!-e $request_filename) rewrite ^/(.*)$ index.php last;
    #if (!-e $request_filename) {rewrite ^/(.*)$ /index.php last;}
    #if (!-e $request_filename) {return 404;}
    #if ($http_user_agent ~ Firefox) {rewrite ^(.*)?$ /nginx-Firefox/$1 break;}
    #if ($http_user_agent ~ MSIE) {rewrite ^(.*)$ /nginx-MSIE/$1 break;}
    rewrite ^/(d+)/(.+)/ /$2?id=$1 last;
    #location ~ ^/(cron|templates)/ {deny all;break;}
    #location ~ ^/data {deny all;}
    #location ^~ /html/m.js {access_log off;root /app/www;expires 5;break;}
    #rewrite ^/ck-([0-9]+)-([0-9]+)-([0-9]+).html$ /ck/$1/$2/$3.html last;
    #rewrite ^/([0-9a-z]+)espressos/(.*)$ /web01/$1/$2 permanent;
    #rewrite ^/([0-9a-z]+)espressos/(.*)$ /web01/$1/$2 last;
    #location /i/ {alias /data/w3/bass/;}
    [root@web01 default]# curl http://192.168.1.24/sss/?id=123
    根下的sss才是请求的真正的目录

     如果/app/www/sss/index.html 改为别的名子如k.html请求会失败(这个规则到底是有什么意义????)

  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/bass6/p/5729686.html
Copyright © 2011-2022 走看看