2016-12-27 14 views
2

次のNginx設定ファイルでは、現在、すべてのHTTP www要求を永続的にHTTPS以外のHTTPにリダイレクトできます。 http://www.example.com =>https://example;comNginx - どのようにしてwwwをnon-wwwにリダイレクトする(301)のは、http/httpsボット?

すべてのHTTPS AR良く利き非WWWのリクエスト.. https://example.com

しかし、WWW HTTPS要求は非WWW HTTPS https://www.examples.comにリダイレクトされません - >https://www.examples.com I'ldのような持っている: https://www.examples.com - >https://examples.com

設定には何がありますか? (あなたが知っていたけど) フィードバックに感謝https://example.comhttps://www.example.comをリダイレクトコンフィギュレーションハンドルで

は、default.conf

server { 
     server_name example.com; 
     return 301 https://example.com$request_uri; 
} 

server { 
     listen 80 default_server; 
     listen [::]:80 default_server; 
     server_name www.example.com; 
     return 301 $scheme://example.com$request_uri; 
} 

server { 
     listen 443 ssl http2 default_server; 
     listen [::]:443 ssl http2 default_server; 
     server_name example.com; 
     include snippets/ssl-example.com.conf; 
     include snippets/ssl-params.conf; 

     root /var/www/html; 
     index index.html index.htm; 

     location/{ 
     try_files $uri $uri/ =404; 
     } 
} 

答えて

2

何もありません。

あなたの証明書がwww.example.comに対して有効であると仮定すると、あなたはdefault_server(すでにポート80を持っているような)ポート443に別々のserverブロックを作成し、としてそれをマークすることができます。

あなたは、単一のserverブロックにhttps://www.example.comではないすべてのものを組み合わせることができ、実際には:

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    listen 443 ssl http2 default_server; 
    listen [::]:443 ssl http2 default_server; 
    include snippets/ssl-example.com.conf; 
    include snippets/ssl-params.conf; 

    return 301 https://example.com$request_uri; 
} 

server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name example.com; 
    include snippets/ssl-example.com.conf; 
    include snippets/ssl-params.conf; 
    ... 
} 

詳細はthis documentを参照してください。

+0

ありがとうございました!はい、私の証明書はボットwwwとno-wwwに有効です。 私はそれについて考えましたが、スニペットを両方のブロックに置くことを完全に忘れていました... – erwin

関連する問題