URLエンコードってURLにどんな文字でも埋め込めるようにするもの、と今までは大雑把にはそう思ってたんですが、概念上は正しくても、現実的にはURLエンコードしておけば万事OKという訳ではなさそうです。
例えば、Apache 2.0.46 以降にはAllowEncodedSlashesという「パス分離文字 (/ は %2F、さらにシステムによっては \ に対応する %5C) が存在する URL の使用を 許可するかどうかを決定する」設定項目があり、設定内容によってはURLエンコードしたといえスラッシュやバックスラッシュは含めない方がよさそうです。
AllowEncodedSlashesはデフォルトでoffなので、URLエンコードしたスラッシュが使えない環境の方が多いかと思われます。
また、GooglebotはURLエンコードしてても%2Fだけはスラッシュに戻してアクセスしてくるようで、大抵の場合変なところでパスが区切られてしまうので404等になってしまいます。
(?以降のパラメーターについては、URL等をパラメーター化できなくなるのでそんなことはしないと思われますが、調べてないのでわかりません。)
アクセス後アドレス欄の表示をURLデコードした値にするブラウザ(ほとんどのブラウザがそうだと思います)では、%2Fが含まれてるURLにアクセスは出来ますが、アクセス後アドレス入力欄では表示が%2F→スラッシュとなってしまいますので、そのURLを再利用(そのままエンターでもう一度アクセスするとか、他のブラウザ等にコピペするとか)するとやはり同じような問題が発生します。
他にもNaverのbotであるYeti/1.0は、シャープ記号(正確には番号記号)をURLエンコードした%23という文字がURLに含まれるとそれ以降の文字を切り取ってアクセスしてくるようです。
こちらも大抵の場合変なところでパスが切り取られてしまうため404等になってしまいます。
(こちらも?以降のパラメーターについては、前述と同じ理由でそんなことはしないと思われますが、調べてないのでわかりません。)
他にもBot毎やブラウザ毎に挙動の違いがたくさんあるかもしれません。
Webサーバーのログを数行みただけでろくに裏も取らずに書いてますので、間違いの指摘や補足は大歓迎です。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…