kawama.jp

PATH_INFOに「%2F」が含まれていると404エラーになる(AllowEncodedSlashesで解決)

カテゴリ: Apache — タグ: , , — 2007年4月27日 09:45 — Comments (1)hatebu count

SEO対策として、PATH_INFOを使ってパラメータをphpスクリプトに受け渡す方法が一般的になりつつあります。

参考:phpスクリプトに拡張子なしでアクセスするためには

自分もこれまでさんざんこのやり方を使っていましたが、つい最近、PATH_INFOの中に「%2F」が含まれているとapacheが404エラーを返すことを知りました。ちなみに「%2F」は「/(スラッシュ)」にURLエンコードをかけた後の文字列です。

http://www.example.com/product.php/id/1234/code/ABC%2FDEF

たとえば上記の例。apacheの設定がデフォルト状態だと404エラーになります。
これを解消するにはAllowEncodedSlashesをOnにします。

AllowEncodedSlashes On

httpd.confやVirtualhostディレクティブにこの記述を追加してapache再起動します。
なお、この設定はApache 2.0.46以降でのみ有効だそうです。あとmod_rewriteなどを使うときにもAllowEncodedSlashesをOnにしていないとエラーが起こるようです。

1件のコメント »

  1. […] http://kawama.jp/archives/2007/04/path_info2f404a.html […]

    ピンバック by CodeIgniter1.7.3がQueryStringを含むパスを扱えるようにする « 週記くらい@上海 — 2011年3月31日 @ 11:55

RSS feed for comments on this post. TrackBack URL

Leave a comment

Copyright (C) 2002 - 2017 kawama All Rights Reserved. — Powered by WordPress