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 の中でもそのままの形式で 残されます。