在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规则应该设计成能够在有限次数内匹配成功。