为什么nginx将所有子域重定向到非www,我只是将重定向www设置为非www

时间:2014-05-16 04:56:22

标签: php redirect web nginx

操作系统:Ubuntu 14.04 LTS

Nginx版本:1.6.0

我想将www重定向到非www,但以下配置将所有子域重定向到非www。

例如,我访问test.mydomain.com/index.php也重定向到mydomain.com/index.php

访问ip_address / index.php也会重定向到mydomain.com/index.php,在FF 26和Chrome 34上测试,但IE11不能重定向。

http {
  gzip                on;
  include             mime.types;
  sendfile            on;
  default_type        application/octet-stream;
  keepalive_timeout   65;

  server {
    listen       80 default_server;
    server_name  mydomain.com;
    root         /var/www;

    location ~* \.php$ {
      fastcgi_index   index.php;
      fastcgi_pass    unix:/var/run/php-fpm.sock;
      include         fastcgi_params;
      fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
      fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }

    location / {
      index        index.html index.htm index.php;
    }

    error_page  404              /404.html;
    error_page  500 502 503 504  /50x.html;
  }

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

1 个答案:

答案 0 :(得分:0)

您的重定向在本节中定义

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

删除行返回301 http://mydomain.com $ request_uri;这应该删除重定向。

如果这是服务器上唯一的站点,则可以删除整个服务器块,因为php处理的根和位置是在此处的服务器{}块中定义的。