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請求會失敗(這個規則到底是有什么意義????)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM