在NGINX中配置子域

时间:2012-06-20 15:55:27

标签: nginx subdomain

我正在尝试在NGINX中配置子域。我哪里错了?

以下是配置文件:

server {

listen 80;
server_name www.teamomattic.com;
rewrite ^/(.*) http://teamomattic.com permanent;

}

server {
    listen 80 default;
    server_name teamomattic.com *.teamomattic.com;

    root /home/jclark/web/teamomattic.com;

    access_log /var/log/nginx/$host-access.log;
    error_log  /var/log/nginx/dev-error.log error;

    index index.php index.html index.htm;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
        rewrite ^/(.*)$ /index.php/$1;
    }

    location ~ \.php {
        # try_files $uri =404;

        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;

        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}



server {
    listen 80;
    server_name test.teamomattic.com;

    root /home/jclark/web/teamomattic.com/images;

    access_log /var/log/nginx/$host-access.log;
    error_log  /var/log/nginx/dev-error.log error;

    index index.php index.html index.htm;
}

1 个答案:

答案 0 :(得分:0)

只是猜测。我会这样。

server
{
    listen 80;
    server_name subdomain.teamomattic.com;

    location / { return 303 http://teamomattic.com$request_uri; }
}
  • 303是新的临时重定向。我从不使用永久重定向,因为您/ B会保持灵活性,并且不需要让您的追随者清除缓存。
  • 您可能不需要此位置块包装器,并且可以直接在服务器中使用return。但最好的做法是始终使用位置,因为您可以轻松添加更多位置。
  • 请尽可能使用https。
  • request_uri通过-传递路径和查询字符串-因此您不会丢失该信息。