Domain-Name-System

你能幫我找出 example.com 到 www.example.com 的重寫來自哪裡嗎?

  • March 18, 2012

這是我的 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到www .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

導致此重定向的原因是什麼?

謝謝

nginx 沒有重定向——尤其是沒有發送您看到的 301 響應程式碼。在 PHP 中執行的程式碼幾乎肯定是罪魁禍首。

請提供有關 PHP 程式碼中執行的內容的資訊 - nginx 不是問題。

我注意到,在大多數網路瀏覽器中,如果它們無法使用 domain.com 建立連接,那麼它們會自動(並且幾乎是瞬間)跳轉到 www.domain.com。確保您的伺服器確實在響應 domain.com 的請求。

做以下測試,請留下評論結果(這裡假設使用 Linux 工作站,也許其他人可以發布 Windows/Mac 版本):

確保域在單獨使用時解析:

nslookup domain.com

確保 Web 伺服器實際上正在偵聽:

telnet domain.com 80

查看請求索引文件時 Web 伺服器向我們發送的位置:

wget domain.com

祝你好運!

引用自:https://serverfault.com/questions/370823