nginx – 哪种方式更好地redirect和为什么

我想从www.mydomain.comredirectnginx中的domain.com。 我search互联网,发现有两种方法:

第一种方式

server { listen 80; server_name www.domain.com; rewrite ^/(.*) http://domain.com/$1 permanent; } 

第二种方式

 server { listen 80; server_name www.domain.com; return 301 $scheme://domain.com$request_uri; } 

两种方式都有效 但是我应该使用哪一个,为什么?

第二种方式比较好

 server { listen 80; server_name www.domain.com; return 301 $scheme://domain.com$request_uri; } 

为什么

让我直接引用来自官方的Nginx wiki 陷阱和常见错误 :

通过使用内置variables$ request_uri,我们可以有效地避免任何捕获或匹配,并且通过使用return指令,可以完全避免正则expression式的评估。

我自己的想法

默认情况下,正则expression式代价很高,会降低性能。