2017-05-11 10 views
2

httpをhttpsにリダイレクトし、nginxで一回のリダイレクトを使用して後続のスラッシュを削除します。私が今日持っている解決策は以下の通りです:Nginxはhttpをhttpsにリダイレクトし、1つのリダイレクトで末尾のスラッシュを削除します

server { 
    listen 80; 
    server_name www.example.com 
    rewrite ^/(.*)/$ /$1 permanent; 
    return 301 https://$host$request_uri; 
} 

この解決策の問題は、それが

は、2つのリダイレクトを与える2つのリダイレクト

を与えるということである。

http://www.example.com/test/ --> http://www.example.com/test 
http://www.example.com/test --> https://www.example.com/test 

それが解決することが可能ですベローズのような1つのリダイレクトだけが得られますか?私は私を与えて試してみました

rewrite ^/(.*)/$ https://$host$request_uri permanent; 

しかし、何も:単一何とか書き換えでそれを行うことが可能であるべきであるように私は感じたnginxの書き換えと復帰方法の文書に目を通し

http://www.example.com/test/ --> https://www.example.com/test 

正しい結果。

+0

試してみてください。 '^ /書き換え/ $のhttps:// $ホスト/ $ 1永久;のための' –

+0

@RichardSmithのおかげで(*。)高速返信と正解!それを答えとして加え、私はそれを受け入れます。 – TensaiNiNaru

答えて

0

正しい解決策のコンポーネントが既にあります。先のURLを構築するために一緒に撮影して、スキームとホスト名を使用します。

rewrite ^/(.*)/$ https://$host/$1 permanent; 
関連する問題