2012-05-10 34 views

Trả lời

9

này là khá nhiều điều tương tự như ví dụ tốt cho http://wiki.nginx.org/Pitfalls#Server_Name. Nghĩa là, bạn nên sử dụng hai máy chủ:

server { 
    server_name b.example.com; 
    return 301 $scheme://a.example.com$request_uri; 

    # For pre-0.8.42 installations: 
    # rewrite^$scheme://a.example.com$request_uri? permanent; 
} 

server { 
    server_name a.example.com; 
    # Do stuff 
} 
+1

'server_name * .example.com;' sẽ bắt bất kỳ tên miền phụ nào bao gồm 'www' và' porno' ™ và 'whatsoever', nếu ai đó tìm kiếm chuyển hướng bất kỳ thứ gì đến tên miền chính. Đối với chuyển hướng http-> https, bạn có thể bao gồm bất kỳ thứ gì bằng cách sử dụng 'server_name .example.com' - nó sẽ chuyển hướng cả example.com và * .example.com. –

+0

@DmitryVerhoturov khi sử dụng '.example.com' một cách hay để chỉ ra rằng các biến thể như' www.' sẽ được chuyển hướng đến 'example.com' là gì? Không sử dụng điều kiện "if" làm giảm hiệu năng? – PKHunter

+0

@PKHunter, '.example.com' là cách tốt nhất để bao gồm' * .example.com', [đây là tài liệu] (http://nginx.org/en/docs/http/server_names.html). –

0

Để làm điều này trong một khối máy chủ duy nhất, bạn có thể sử dụng một nếu và $server_name variable:

server_name primary.tld secondary.tld; 
    if ($host != $server_name) { 
     rewrite^$scheme://$server_name permanent; 
    } 

Hoặc, để giữ cho bất kỳ tham số truy vấn:

server_name primary.tld secondary.tld; 
    if ($host != $server_name) { 
     rewrite ^/(.*) $scheme://$server_name/$1 permanent; 
    } 

ở đây, $server_name đề cập đến tên máy chủ chính, đó là tên đầu tiên trong chỉ thị server_name, trong khi $host đề cập đến ho stname được đưa ra trong yêu cầu HTTP.

Lưu ý rằng tuyên bố if trong cấu hình nginx không phải lúc nào cũng làm những gì bạn mong đợi và việc sử dụng nó không được khuyến khích bởi một số người. Xem thêm https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/

Câu trả lời này được lấy cảm hứng từ this answer to another question sử dụng sản phẩm tương tự.

Các vấn đề liên quan