您能帮我找出 example.com 到 www.example.com 的重写来自哪里吗?

您能帮我找出 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;
    }
    }
}

我以为可能是 Godaddy 做了某种转发,但我将 DNS 从 Godaddy 移至 AWS Route 53,如果我输入 example.com,它仍然会转发到 301万维网.example.com。

我的 Route 53 DNS:

mywebsite.com   3600    A   107.22.210.xxx

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

什么原因导致了这次重定向?

谢谢

答案1

nginx 没有重定向 - 尤其是没有发送您看到的 301 响应代码。在 PHP 中运行的代码几乎肯定是罪魁祸首。

请提供有关 PHP 代码中运行内容的信息 - nginx 不是问题所在。

答案2

我注意到,在大多数 Web 浏览器中,如果无法使用 domain.com 建立连接,它们将自动(几乎立即)跳转到 www.domain.com。请确保您的服务器确实在响应对 domain.com 的请求。

执行以下操作进行测试,并请留下结果评论(假设使用 Linux 工作站,也许其他人可以发布 Windows/Mac 版本):

确保域名在单独使用时能够解析:

nslookup domain.com

确保 Web 服务器确实正在监听:

telnet domain.com 80

查看 Web 服务器在请求索引文件时将我们发送到哪里:

wget domain.com

祝你好运!

相关内容