環境: CakePHP 1.3 CakePHPはURLパラメータのエンコードを一切行わないため、特殊な文字がパラメータに入り込むと容易にルーティングが破綻する。ここで言う「URLパラメータ」とはRoute中に埋め込まれたパラメータ、namedパラメータ、passパラメータのことを指す。 例えば以下のようなRouteがあったとする。 /controller/action/:keyword ここでパラメータkeywordに特殊な文字を与えると… keyword => '%' URL: /controller/action/% 結果: URLとして不正な形式なので"400 Bad Request"になる keyword => '?foo' URL: /controller/action/?foo 結果: ?以降はQueryStringと見なされてルーティングから除外され、Routeにマッチしなく