[0] 備忘:URLにエンコードした文字を表示する場合の注意点。-[Id of Radiance ver.5]





■ 備忘:URLにエンコードした文字を表示する場合の注意点。

 ふとGoogle Analyticsで本サイトの状況を確認してみると、やけにページが見つからない場合の404エラーが多発していることに気づいた。
 が、しかしである。そもそもZend Frameworkを使用するためにRewrite設定でほとんどのリクエストをindex.phpにリダイレクトかけてるので404エラーの発生率はほとんどないハズ(無いわけではない)。
 と思ってアクセスできないページとやらにアクセスしてみると普通に表示される。なんだろう、一時的なものかなー、と思いGoogleのツールで再取得させてみると「取得できません」。あれー?
 次にブラウザのプラグインでHTTPヘッダをとれるヤツを起動、問題のページにアクセスしてみると、ページは表示されるのだがレスポンスは404エラーが出てRUUUUUUUUUUU!!

 なんだこら、404出てるのに表示されるってなどーゆー了見だ、ととりあえず問題のURLを漁ってみると、URL内で「/」をURLエンコードした「%2F」が入ってると404エラーが発生してることが判明。そこから更に調査して、Apacheの場合URLにこのエンコードしたスラッシュが入っているとデフォルトだと404エラーを返す事も判明。それを抑止するためにhttpd.conf等にて「AllowEncodedSlashes on」を設定すれば良いことも判明。設定→再起動→確認。無事404エラーの抑止に成功しましたとさ。

 解析ツールのログ、グラフを見てみると今年の1/20頃から急にエラー扱いのページが増えている。別にこの頃から「%2F」を使いだしたわけでもないし、Apacheの設定を変えたりしたわけでもない。ひょっとするとGoogleの解析方法が若干変わったということだろうか。色々あるもんですなぁ。ちゃんとチェックしておかないと。

2012-03-28 [技術]

関連記事: