2016-10-12 12 views
1

と一致した場合にのみ、私はすべてのサーバーのブロックのようにキャッチを持っているサーバブロックを使用します。nginxのは:場所は

server { 
    listen  80 default_server; 
    server_name _; 

    location /blog{ 
     # pass request to ghost 
    } 
    location /{ 
     # pass request to custom node app 
    } 
} 

それは要求されたドメイン、プロトコル、およびパス、および問題点を検証し、カスタム・ノードのアプリに渡します。必要に応じて単一の301リダイレクト。 SEOの目的で、301リダイレクトを最小限に抑えるためにこれを行います。

また、私の幽霊ブログはhttps://www.exmaple.com/blogでのみ提供する必要があります。独自ドメインへのリクエストがリダイレクトされますなるように

server { 
    listen  80; 
    server_name example.com; 

    location /blog { 
     return 301 https://www.example.com$request_uri; 
    } 
} 

:私は、次のブロックを追加しました。しかし、example.comへのリクエストはデフォルトのNginx index.htmlページを返します。それをどうやって防ぐのですか? ifを使用しないでください。あなたは裸のドメインサーバブロックでキャッチオールを持っている必要があり

+1

へのルートがように、2つの異なる/ブログの場所は、あなたがリダイレクトしているがありますか?なぜあなたのexample.comサーバーブロックにキャッチオールロケーションを追加しないのですか? –

+0

私のカスタムノードのアプリケーションに行くには、まだ裸のドメインのすべての非/ブログリクエストが必要です。問題は、2番目のサーバーブロックで起こっていることを防ぐことです。 –

答えて

2

ノード・アプリケーション

server { 
    listen  80; 
    server_name example.com; 

    location /blog { 
     return 301 https://www.example.com$request_uri; 
    } 

    location /{ 
     # pass request to custom node app 
    } 
} 
+0

'location /'ブロック全体をコピーするだけですか? –

+0

はい、裸のドメインでは、場所が/ブログの場合の対処方法のみが指定されています。だからキャッチオールを設定すると、あなたは働くはずです。 – miah

関連する問題