2013-03-16 34 views

cevap

13

ile kalıcı yeniden yönlendirmeyi döndürür. Aşağıdaki kod parçacığı, herhangi bir ana makine adında sabit kod olmak zorunda kalmadan genel olarak bunu yapar (sunucu yapılandırma tutamağınız varsa yararlıdır) birden çok alan için istekte bulunur). İhtiyacınız olan herhangi bir sunucu tanımının içine ekleyin. $http_host değil ise

if ($http_host ~ "\.$"){ 
    rewrite ^(.*) $scheme://$host$1 permanent; 
} 

Bu, $host çıkarıldı sonunda noktaya sahip olduğu (Igor Sysoev tarafından işaret) gerçeğinden yararlanır; Böylece, $http_host'daki noktayı eşleştirebilir ve yönlendirmede otomatik olarak $host'u kullanabiliriz.

+0

Teşekkürler, mükemmel çalıştı! – user2168809

+1

Yeniden kodlanmış şemadan kurtulmak için 'yeniden yazmak^(. *) $ Şema: // $ host $ 1 kalıcı; –

+0

@SlavaFominII suggesion (ve düzenleme) için teşekkürler - çok daha iyi. –

0

Regex'i kullanmanız gerekir.

server { 
    listen  80; 
    server_name domain.com.WHATEVER, domain.com.WHATEVER-2, domain.com.WHATEVER-3; 
    rewrite^$scheme://domain.com$request_uri? permanent; 
} 

Gönderen: http://wiki.nginx.org/HttpRewriteModule

yönlendirme - koduyla 302 ile geçici yönlendirmesi döndüren; ikame hattı http: // daimi ile başlıyorsa kullanıldığında kullanılır - 301