basyura's blog

あしたになったらほんきだす。

GitLab - branch 名にスラッシュ

branch 名にスラッシュがある場合に GitLab 上で Network が表示できなかったりブランチを削除できなかったりしたので apache の httpd.conf をいじって

AllowEncodedSlashes NoDecode

としていた。これが 11.6 に上げたあたりからまた動かなくなってた。そこで

AllowEncodedSlashes On

にしたら動くようになったのだけど、これでいいのだろうか・・・。

を見ると NoDecode になってるけどなぁ。↓に無いからいつの間にか NoDecode は効かなくなった? 2.2 以降じゃないと使えないというのもヒットするけど

httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 19 2015 21:43:13

だから大丈夫なはずなんだが。

AllowEncodedSlashes ディレクティブ

https://httpd.apache.org/docs/2.0/ja/mod/core.html#allowencodedslashes

説明 URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを決定する
構文 AllowEncodedSlashes On|Off
デフォルト AllowEncodedSlashes Off
コンテキスト サーバ設定ファイル, バーチャルホスト
ステータス Core
モジュール core
互換性 Apache 2.0.46 以降で使用可能


AllowEncodedSlashes ディレクティブは符号化された パス分離文字 (/ は /、さらにシステムによっては \ に対応する ) が存在する URL の使用を 許可するかどうかを決定します。通常はそのような URL は 404 (Not found) エラー で拒否されます。

AllowEncodedSlashes On による パス分離文字の使用は、PATH_INFO と合わせて 使うときに一番役に立ちます。

Turning AllowEncodedSlashes On is mostly useful when used in conjunction with PATH_INFO.

注 符号化されたスラッシュを許可することは、復号をすることを 意味しません。/ や (関係するシステムでの) \ は、他の部分が復号された URL の中でもそのままの形式で 残されます。