タグ

ブックマーク / shimonoakio.hatenadiary.org (2)

  • URL中のPath部分のパーセントエンコード - ある異邦人の技術メモ

    URLのPath部分でURLエンコードした文字列を扱いたい! Apacheの裏でPassenger動かしている環境において、パス部分にパーセントエンコードされた文字列を含む、たとえば以下のようなURLを扱おうとすると、問題に直面する。 http://example.com/foo/http%3A%2F%2Fexample.org%2Fbar/baz 何がおこるかというと、Railsにわたる前にApacheが勝手にパーセントデコードしてしまうため、 Railsのroutes.rbで受ける段階で、たとえば以下のような記述をしてもちゃんと意図した形でマッチがなされないためだ。 match '/foo/:url/baz' => .. この問題の解決のため(解決にはなっていないのだが)、泣く泣くサービスの外部仕様を捻じ曲げて、扱うURLの中で、以下のようにパーセントエンコードを2重でかけるという手段

    URL中のPath部分のパーセントエンコード - ある異邦人の技術メモ
  • Railsで任意のパスをひとつのControllerで受け付ける - ある異邦人の技術メモ

    Railsの構成技術の一つにURLマッピング機能というか、map.connectやらmap.resouceというか、 config/routes.rb がある。これはStrutsでいうところのStruts-configや、J2EEでいうところのweb.xmlが担っていたURLを特定のプログラムにマッピングする機能を提供するもので、その簡潔で直感的な記述方法や自由度の高さCoCのしやすさからRailsを特徴づけるとても強力な仕掛けだと思う。 今回「任意のパスをひとつのプログラムで受け付ける」という要件を実装すべく色々調べていたのだが、なかなか情報が見つからなかった。まあ、そんなことしたがる人はあんまりいないかも知れないけどねぇ・・ コンテンツフィルタとかを実装する場合はこれが出来るかどうかは結構重要なわけで・・ あぁRailsではそういうことは出来ないのか・・?という疑いに心が支配されそうに

    Railsで任意のパスをひとつのControllerで受け付ける - ある異邦人の技術メモ
  • 1