Nginx的rewrite對地址進行重寫


1.語法

rewrite "用來匹配路徑的正則" 重寫后的路徑 [指令];

2.案例

server {
        listen       80;
        server_name  api.shunwang.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    	# 上傳路徑的映射
		location /api/upload {	
			proxy_pass http://127.0.0.1:8082;
			proxy_connect_timeout 600;
			proxy_read_timeout 600;
			
			rewrite "^/api/(.*)$" /$1 break;   # /$1匹配的參數
        }
    }

3.解釋

rewrite "^/api/(.*)$" /$1 break,路徑重寫:

	"^/api/(.*)$":匹配路徑的正則表達式,用了分組語法,把/api/以后的所有部分當做1組

	/$1:重寫的目標路徑,這里用$1引用前面正則表達式匹配到的分組(組編號從1開始),即/api/后面的所有。這樣新的路徑就是除去/api/以外的所有,就達到了去除/api前綴的目的

	break:指令,常用的有2個,分別是:last、break

		last:重寫路徑結束后,將得到的路徑重新進行一次路徑匹配

		break:重寫路徑結束后,不再重新匹配路徑。

nginx -s reload命令重新加載配置

  


免責聲明!

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



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