2017-02-24 18 views
1

私は、URLを持つサイトの2つのバージョン、http://example.comhttps://example.comを持っています。Nginxで静的ファイル要求をhttpsにリダイレクトする方法は?

静的コンテンツ(.html.htm.jsで終わるファイル)へのすべてのリクエストを、自分のサイトのhttpsバージョンにリダイレクトしたいとします。ブラウザがhttps://example.comに自分のサイトのアドレスを変更するこのルールでは

location ~ "\.(htm|html|js|css|svg|png)$" { 
     return 307 https://example.com$request_uri; 
} 

だから、私はルールを作成しました。

私はアドレスを変更したくないですが、静的なファイルへのすべてのリクエストはindex.html(私のサイトのメインのhtml)ではなく、httpsバージョンにリダイレクトされます。

AND NOT index.htmlのようなものをregex ~ "\.(htm|html|js|css|svg|png)$"に追加するにはどうすればよいですか?

答えて

1

試してみてください。

root /path/to/root; 

location = /index.html { 
} 

location ~ "\.(htm|html|js|css|svg|png)$" { 
    return 307 https://example.com$request_uri; 
} 

location =ブロックは最高の優先順位(順序は重要ではありません)があります。

明示的または暗黙的な文のため、/は、nginx/index.htmlになるようにします。空のロケーションブロックにより、静的ファイルが提供され、return 307は回避されます。

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

関連する問題