Я хочу перенаправить с www.mydomain.com на domain.com в nginx. Я поискал в Интернете и нашел два пути:
Первый способ
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 по адресу Подводные камни и распространенные ошибки:
Используя встроенную переменную $ request_uri, мы можем эффективно избежать любого захвата или сопоставления вообще, а с помощью директивы return мы можем полностью избежать вычисления регулярного выражения.
Мои собственные мысли ...
По умолчанию регулярное выражение является дорогостоящим и снижает производительность.