rails:833
From: psychs@d...
Date: Tue, 27 Dec 2005 13:40:08 +0900 (JST)
Subject: [rails:833] Re: URI を引数にアクションを呼ぶ方法
中川です。 > map.connect 'register/*uri', :controller => 'urimanager', > :action => 'register' > > とすると、params[:uri] が ["http:", "", "www.google.com"] になりますので、 > uri = params[:uri].join('/') とすれば受け取ることができます。 なるほど。 手元で試してみたところ、WEBrick、Apache2 のどちらでも、この方法で ok で した。復元については、params[:uri].to_s で join('/') 相当になるようです。 > ただし、この方法だと末尾のスラッシュの有無 > http://localhost:3000/register/http://www.google.com/ > http://localhost:3000/register/http://www.google.com > の区別はできませんので、ホスト名だけだといいけど、下位ディレクトリも含ん > だ URI だと嫌ですね。 サーバのディレクトリ構成をそのまま URI として公開している場合でも、同名 のファイルとディレクトリが併存することはまずないので、問題なさそうですね。 > > しかし、このアプリを Apache 2.0.49 + mod_fastcgi 2.4.2 の環境に持っていっ > > たときに、 > > > > http://localhost:3000/register/http://www.google.com/ > > http://localhost:3000/register/http%3a%2f%2fwww.google.com%2f > > > > のどちらにアクセスしても、404 が返ってきます。 > > こちらについては、(.htaccess ではなく) サーバの設定ファイルに > AllowEncodedSlashes On > を指定すれば (後者のアクセスは) 動くと思いますがどうでしょうか? > > (参考) http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes 上で教えていただいた「*uri」とこの方法を利用することで、両方の形式のアク セスを受け入れることができるようになりました。 おかげで、すべての問題をすっきり解決することができました。 ご教授、感謝します。ありがとうございました。 -- Satoshi Nakagawa -- ML: rails@r... 使い方: http://QuickML.com/ Web Site: http://wiki.fdiary.net/rails/ ML Archives: http://www.fdiary.net/ml/rails/
828 2005-12-24 00:45 [psychs@d... ] URI を引数にアクションを呼ぶ方法 829 2005-12-24 00:59 ┗[kazuhiko@f... ] -> 833 2005-12-27 05:40 ┗[psychs@d... ]