Tuy nhiên, một nginx viết lại quy tắc câu hỏi:nginx subdomain viết lại
Làm thế nào tôi có thể làm một viết lại http://www.*.domain.com
-http://*.domain.com
?
Tuy nhiên, một nginx viết lại quy tắc câu hỏi:nginx subdomain viết lại
Làm thế nào tôi có thể làm một viết lại http://www.*.domain.com
-http://*.domain.com
?
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ http://$host_without_www$1 permanent; # $1 contains '/foo', not 'www.mydomain.com/foo'
}
trả lời từ lỗi server: https://serverfault.com/questions/139579/nginx-subdomain-rewrite
Cách tiếp cận này không được khuyến cáo hiện nay. Xem [phần này về những cạm bẫy phổ biến] (http://wiki.nginx.org/Pitfalls#Using_If). –
phương pháp được đề xuất là gì? – Tony
server {
listen 80;
listen 443;
server_name ~^www\.(\w+)\.domain\.com$;
location/{
rewrite^$scheme://$1.domain.com$request_uri? permanent;
}
}
Lưu ý rằng điều này mang lại một chuỗi truy vấn kép, một yêu cầu cho '/? Foo = bar' sẽ chuyển hướng đến' /? Foo = bar? Foo = bar'. Sử dụng '$ uri' dường như hoạt động như dự định, mặc dù có thể có các tùy chọn tốt hơn. – sapht
Thêm? sau $ request_uri sẽ tránh được vấn đề chuỗi truy vấn lặp lại. – tarkeshwar
Có dấu chấm phẩy bị thiếu sau tên server_name – alvin
câu hỏi tương tự: http://stackoverflow.com/questions/2498712/nginx-subdomain-rewrite –