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

Можете ли вы помочь мне узнать, откуда происходит перезапись с example.com на www.example.com?

Вот моя конфигурация NGINX (без apache, только php-fpm):

user  nginx;
worker_processes  1;
error_log /usr/local/nginx/logs/error.log notice;
pid       /var/run/nginx.pid;

events  {
        worker_connections      384;
}

http    {
        include          mime.types;
        default_type  application/octet-stream;
        access_log          off;
    server_tokens       off;
        sendfile                 on;
        tcp_nopush           on;
    tcp_nodelay             off;
    client_max_body_size     8M;
    client_body_timeout      30;
    client_header_timeout    15;
    keepalive_timeout     15 65;
    send_timeout             30;

gzip on;
    gzip_static on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 9;
    gzip_buffers 32 4k;
    gzip_http_version 1.0;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    upstream php-fpm-sock {
    server unix:/var/run/php-fpm.sock;
}

server  {
        listen          80;
        server_name     example.com;
        index           index.php index.html;
        root            /usr/local/nginx/html;
    error_page      404 index.php;

        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 444;
        }

        location ~* \.(?:jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
        expires 1y;
        log_not_found off;
        }

        location / {
    try_files $uri $uri/ /index.php?q=$uri;
        }

    location /blog {
        try_files $uri $uri/ /index.php?$uri&$args;
        }

        location ~ \.php$ {
         fastcgi_index  index.php;
                try_files $uri =404;
         fastcgi_pass   php-fpm-sock;
             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
             include        fastcgi_params;
         fastcgi_connect_timeout    15;
         fastcgi_send_timeout   30;
         fastcgi_read_timeout   15;
         fastcgi_buffer_size    8k;
         fastcgi_buffers         32 8k;
    }
    }
}

Я подумал, что, возможно, это было что-то вроде пересылки, но я переместил DNS с Godaddy на AWS Route 53 и ВСЕ ЕЩЕ, если я наберу example.com, он переадресован на 301 на www.example.com.

Мой маршрут 53 dns:

mywebsite.com   3600    A   107.22.210.xxx

*.mywebsite.com 3600    CNAME   ec2-107-22-210-xxx.compute-1.amazonaws.com

Что вызвало это перенаправление?

Спасибо

nginx не перенаправляет - особенно не отправляет код ответа 301, который вы видите. Код, работающий на PHP, почти наверняка виноват.

Пожалуйста, предоставьте информацию о том, что работает в PHP-коде - проблема не в nginx.

Я заметил, что в большинстве веб-браузеров, если они не могут установить соединение с помощью domain.com, они автоматически (и почти мгновенно) перейдут на www.domain.com. Убедитесь, что ваш сервер действительно отвечает на запрос domain.com.

Выполните следующие действия для проверки и оставьте комментарий с результатами (предполагается, что используется рабочая станция Linux, возможно, кто-то еще может опубликовать версию для Windows / Mac):

Убедитесь, что домен разрешается, когда используется сам по себе:

nslookup domain.com

Убедитесь, что веб-сервер действительно слушает:

telnet domain.com 80

Посмотрите, куда нас отправляет веб-сервер при запросе индексного файла:

wget domain.com

Удачи!