#Nginx下常見的301跳轉有以下三種,雖然都能達到相同的目的。但是三種寫法上還是有差別的,主要的差別在於正規匹配的表現。
第一種:使用rewrite指令,透過正規比對所有的URI後再去掉開頭第一個/(反斜線)。
rewrite ^/(.*)$ https://www.hi-linux.com/$1;
第二種:同樣使用rewrite指令,不同的是透過$request_uri變數來匹配所有的URI。
rewrite ^ https://www.hi-linux.com$request_uri? permanent;
這樣寫的好處是省去了去掉開頭第一個反斜線的過程,正則匹配上性能更優。
第三種:使用return指令,透過301狀態碼和$request_uri參數,直接告訴Nginx這是個301重定向和抓取指定URI。
return 301 https://www.hi-linux.com$request_uri;
這種方法是效能上最優的,因為rewrite指令有很多寫法和規則,執行完所有正規匹配後,Nginx 才會知道這是一個301永久重定向。
透過以上三種寫法介紹,我們可以看出return指令在301跳轉上比rewrite指令效能上更有優勢。雖然在訪問量不大的情況下幾種寫法的性能表現上區別並不大,不過在海量訪問中一個小小的優化也能在提升業務系統性能上起到不小的作用喲!
以上是Nginx實作301重新導向方法的不同之處的詳細內容。更多資訊請關注PHP中文網其他相關文章!