我想从www.mydomain.comredirect到nginx中的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式代价很高,会降低性能。