2012-04-02 11 views
3

私はwebappを開発しています。スタティックファイルの場合は、localhostでApacheを使用していますが、バックエンドはlocalhost:5984というcouchdbインスタンスにあります。htaccess rewriteRuleでリダイレクトの代わりにプロキシを使用

webappは常にバックエンドのファイルとやりとりします。だから、Apacheでテストしようとしたときに、localhost:5984へのすべてのファイル要求がクロスドメインポリシーによってブロックされているので、フラグを無視するように設定してブラウザを起動する唯一の方法です。

しかし、私はこのようなipadやiphoneのような携帯電話でアプリをテストしようとすると固まってしまいます。

現在、私は.htaccessファイルにこれを持っています。

RewriteEngine on 

# these are 302 http redirections instead of serving as a proxy 
RewriteRule auth http://localhost:5984/auth [L] 
RewriteRule db/([\s\S]+) http://localhost:5984/db/$1 [L] 
RewriteRule send/([\s\S]+) http://localhost:5984/send/$1 [L] 

# these are just redirections to static files and work great 
RewriteRule ^([a-z/.]+) _attachments/$1 [L] 
RewriteRule ^$ _attachments/ [L] 

ご覧のとおり、残念なことにApacheの設定をどのように処理するかはわかりません。 しかし、今起こっているのは、これらのルールの中には、クロスドメインで問題を引き起こすプロキシサーバーとして提供するのではなく、単にページをリダイレクトしているということです。

また、最初のauthルールでは、POSTとDELETE要求を送信します。プロキシではなくリダイレ​​クトとして、POSTされているデータは通過しません。

私が達成したいのは、ある種の機能(存在する場合)をアクティブにすることです。この機能は、Apacheを単にリダイレクトする代わりにlocalhostドメイン上にレンダリングするようにします。 (私はこれをプロキシと名付けましたが、それは正しい用語でもないかもしれません。

このような対応が可能ですか?事前

+0

** 1)**を見'[P]'フラグ:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_pおよびhttp://httpd.apache.org/docs/current/rewrite/proxy.html; ** 2)** mod_proxy(多分同じサーバー上にあれば#1で十分でしょう) - http://httpd.apache.org/docs/current/mod/mod_proxy.html – LazyOne

+0

LazyOne、ありがとう、[P]フラグが働いていましたが、実際には前に試してみましたが、画面上で私が望むものが得られなかったので動作していないと仮定していました。要求が実際にcouchdbにトンネリングされていたことが判明し、問題はそこで要求を処理していたことが分かります。しかしあなたのリンクのおかげで、私は何をすべきかよく分かりました。どうもありがとう。あなたがあなたのコメントを回答としてマークしても大丈夫なら、私はそれを喜んで正しいものとしてマークします。再度、感謝します – zanona

答えて

関連する問題