我想在 nginx 中从 www.mydomain.com 重定向到 domain.com。我搜索了互联网并找到了两种方法:
第一种方式
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;
}
两种方法都行得通。但我该使用哪一种?为什么?
答案1
第二种方法更好...
server {
listen 80;
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
为什么
让我直接引用官方 Nginx wiki 中的内容陷阱和常见错误:
通过使用内置变量 $request_uri,我们可以有效地避免进行任何捕获或匹配,并且通过使用 return 指令,我们可以完全避免正则表达式的评估。
我自己的想法...
默认情况下,正则表达式成本高昂并且会降低性能。