先日とあるサーバのNginxを設定している時にダブルスラッシュとダブルトレイリングスラッシュを1つにしてほしいとの依頼があったので対応しました。
やりたいこと
- こんな感じでリライト
- https://example.com/aaa//bbb/ -> https://example.com/aaa/bbb/
- https://example.com/aaa/bbb// -> https://example.com/aaa/bbb/
設定内容
nginx.confに追記
merge_slashes off;
※デフォルトで「merge_slashes off;」のようなので設定不要かも
locationディレクティブに設定
rewrite (.*)//+(.*) $1/$2 permanent;
トレイリングスラッシュが2つ以上ある場合
if ($request_uri ~* "\/\/") { rewrite ^/(.*) $scheme://$host/$1 permanent; }