1

私はいくぶんApacheの初心者です-最初にそれを片付けましょう!Railo インスタンスに REST API フレームワークである "taffy" をセットアップしようとしていますが、一生この書き直しを機能させることはできません。Coldfusion / IIS 7 で問題なくセットアップできましたが、Apache で結果を再現できません。

基本的に、フレームワークは次のようなリクエストの取得に依存しています。

/api/index.cfm?endpoint=/resource

それは問題ありませんが、明らかに RESTful ではありません。彼らは「タフィー」のドキュメントで、追加のルールなしで「/api/index.cfm/resource」を呼び出すだけでよいと言っていますが、私はその仕事をしたことがありません。とにかく、URL バーに「/api/resource」と入力して、URL を醜い「/api/index.cfm?endpoint=/resource」に戻さずに機能するようにしてほしい。

ここに私の書き換えルールがあります:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule api/(.*)$ /api/index.cfm?endpoint=/$1 [QSA,L]

ログを見ると、URL が「/api/index.cfm?endpoint=/resource」に正しく書き換えられています。次に、「?endpoint=/resource」を分割し、それが気に入らないと判断し、単純に「/api/index.cfm」にリダイレクトします...これは何もしません。

今、私が理解しているように、Apache はクエリ文字列を取得し、cgi QUERY_STRING 変数に隠しています。Railo は、CGI スコープではなく、URL スコープから「endpoint」変数を取得する必要があります。

ここでやろうとしていることを達成する方法はありますか? ちなみに、提案されているように R または R=301 タグを追加すると、無限のリダイレクト ループに陥りますが、これも説明できません。この時点で、私は普通の古いリダイレクトでほぼ満足していますが、ループから抜け出すことはできません. 私は何をやっている!!?

4

0 に答える 0