У меня проблема с nginx. Если вы вызываете «example.com» или «example.example.com», nginx перенаправляет его на «www.example.com», как я хочу, без проблем. Но он не перенаправляет, если я ввожу такой URI: «example.com/doesnt-redirect». Он не будет добавлять www. часть и поэтому я получаю 404 от моего сайта блога. Моя конфигурация:
server {
listen 80;
server_name www.example.com *.example.com;
if ($http_host != "www.example.com") {
return 301 http://www.example.com$request_uri;
}
root /home/ghost/;
index index.html;
}
Использовать server_name .example.com;
вместо.
Из nginx имена серверов документация :
Специальное имя с подстановочным знаком в форме «.example.org» может использоваться для соответствия как точному имени «example.org», так и имени подстановочного знака «* .example.org».
Обратите внимание, что www.example.com
можно удалить, так как форма подстановочного знака все равно будет соответствовать ему.