web-dev-qa-db-ja.com

nginxはwww.domainにリダイレクトします

常にサイトをwww.site.comにリダイレクトしたい。ただし、WWWを常に前面に表示する方法については、誰かがwwwなしでドメインに入力すると言うべきかどうかはわかりません。

編集:

server {
        listen  80;
        server_name  site.com;
        rewrite ^(.*) https://www.site.com$1 permanent;
}

server {
    listen       80;
    server_name  www.site.com;
    #rewrite ^(.*) https://www.site.com$1 permanent;
    root /home/site/public_html;

        listen       443 ssl;

Site.comと入力するとhttps://www.site.com =成功

Site.com/index.phpと入力すると、http://www.site.com = SSLなし

アイデア?

4
Jake Thomas

あなたはそれを難し​​い方法でやっています。これが簡単な方法です。

server {
    listen 80;
    server_name  example.com;
    rewrite ^(.*) http://www.example.com$1 permanent;
}

server {
    listen 80;
    server_name  www.example.com;
    #The rest of your configuration goes here#
}
2
ceejayoz

returnの代わりにrewriteを使用する方が高速です。

server {
    listen 80;
    server_name     example.com;
    return          301 http://www.example.com$request_uri;

server {
    listen 80;
    server_name     www.example.com;
    [...]

このようにして、クライアントに適切なステータスコードを送信し、次のリクエストで正しいドメインを尋ねるようにします。

16
ansi_lumen