[前][次][番号順一覧][スレッド一覧]

rails:828

From: psychs@d...
Date: Sat, 24 Dec 2005 08:45:09 +0900 (JST)
Subject: [rails:828] URI を引数にアクションを呼ぶ方法

中川です。

Rails 1.0 で、以下のようなリクエストを受けた場合に、

  http://localhost:3000/register/http://www.google.com/http://www.google.com」を引数にして、あるアクションを呼びたいと思いま
す。

そこで、route.rb のデフォルトルートの直前に、

  map.connect 'register/:uri', :controller => 'urimanager',
                               :action => 'register'

という行を追加して、

  http://localhost:3000/register/http://www.google.com/

にアクセスしてみると、やはり「/」を区切り文字として認識するようで、uri全
体を引数として受け取れませんでした。

WEBrick では、URIをエスケープして

  http://localhost:3000/register/http%3a%2f%2fwww.google.com%2f

にアクセスすることで、「http://www.google.com/」を引数に受け取ることはで
きました。

しかし、このアプリを 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 が返ってきます。

public/.htaccess は、以下のように設定しています。

  RewriteEngine On
  RewriteBase /
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

どのようにすれば、URIを(できればエスケープせずに)引数にしてアクションを
呼べるようにできるのでしょうか。

環境:
  Linux 2.4.2
  Ruby 1.8.2
  Ruby on Rails 1.0
  Apache 2.0.54
  mod_fastcgi 2.4.2

--
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...         ]