在Nginx中,rewrite指令用于重寫URL。它允許用戶修改請求URI、查詢參數以及HTTP請求方法。
以下是常用的Nginx rewrite重寫規則:
重寫到固定URI:rewrite ^/old-uri$ /new-uri last;
重寫到帶變量的URI:rewrite ^/product/(\d+)$ /product?id=$1 last;
添加查詢參數:rewrite ^/product$ /product?id=123 last;
修改查詢參數:rewrite ^/product?id=(\d+)$ /product?id=$1&category=1 last;
移除查詢參數:rewrite ^/product?id=(\d+)&category=1$ /product?id=$1 last;
臨時重定向:rewrite ^/old-uri$ /new-uri redirect;
永久重定向:rewrite ^/old-uri$ /new-uri permanent;
需要注意的是,rewrite指令在每個請求處理階段都會被執行,因此應該避免使用過多的rewrite規則,以免對性能產生不利影響。另外,為了避免死循環,rewrite規則應該設計成能夠在有限次數內匹配成功。