Назад | Перейти на главную страницу

nginx перенаправляет на www.domain

Я хочу ВСЕГДА перенаправлять сайт на www.site.com. Однако я не уверен, как заставить WWW всегда отображаться впереди, если кто-то вводит домен без www.

РЕДАКТИРОВАТЬ:

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

server {
    listen       80;
    server_name  www.site.com;
    #rewrite ^(.*) https://www.site.com$1 permanent;
    root /home/site/public_html;

        listen       443 ssl;

Если я наберу site.com, он перейдет к https://www.site.com = УСПЕХ

Если я наберу site.com/index.php, он перейдет к http://www.site.com = НЕТ SSL

Идеи?

Лучше использовать return вместо того rewrite, потому что это быстрее

server {
    listen 80;
    server_name     example.com;
    return          301 http://www.example.com$request_uri;

server {
    listen 80;
    server_name     www.example.com;
    [...]
}

Таким образом, мы также отправляем клиенту правильный код состояния, чтобы он запрашивал правильный домен в следующем запросе.

Вы делаете это нелегко. Вот простой способ.

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

server {
    listen 80;
    server_name  www.example.com;
    #The rest of your configuration goes here#
}