Nginx中return 和 rewrite在 301重定向上的区别

917人参与 |分类: 技术文章|时间: 2022年04月24日
当前位置:网站首页 > 技术文章 > Nginx中return 和 rewrite在 301重定向上的区别

唯一区别:正则匹配的性能区别

rewrite ^/(.*)$ https://example.com/$1;

rewrite ^ https://example.com$request_uri? permanent;

return 301 https://example.com$request_uri;

第一种 rewrite 写法是抓取所有的 URI 再减去开头第一个 / (反斜线)。

第二种写法用了$request_uri 省去了减去开头第一个反斜线的过程,正则匹配上性能更优。但仍不如第三种写法,因为 rewrite 有很多写法和规则,执行到最后 nginx 才知道这是一个 301 永久重定向。

第三种则直接 return 301 + $request_uri,直接告诉 nginx 这是个 301重定向,直接抓取指定URI。

所以以上三种写法,第三种性能更优一些

本文来源:廖维林博客,转载请保留出处和链接!

本文地址: