Crowi でページの移動時などに連続したスラッシュを入れることができてしまう。例えば、こんな風に。
/path/to//page
Crowi 内での path は、単なる文字列なので、これでも通っていた。そして、Crowi を起動して直接使っている場合は、これでも問題なく動いていた。
一方で、SSL での接続をしたくて前段に nginx などを置いて利用するパターンがある。現実の運用としてはこちらのほうが多い気もする。
その nginx では、スラッシュが複数ある場合は、単独のスラッシュとして処理をする機能がデフォルトで ON になっている。
これが有効な場合は、次のような挙動になりそう。
/path/to//page
)/path/to//page
)/path/to/page
)ということで、複数スラッシュを入力された場合はページ移動などができないようにする修正を入れてみた。
//
) in page path
ちょっと直し方が雑なんだけど、いったんこの方法でカバーしてみようかな、と。