2

次のApachemod_rewriteルールがあります。

RewriteRule ^(.*) http://127.0.0.1:4321/$1 [proxy]

これはうまく機能します。Apacheは、同じマシンで実行しているCherryPyサーバーにすべてのリクエストを転送します。

残念ながら、スペースのあるパスで問題が発生しています。私がリクエストを行うと/Sites/some%20site/image.png、ApacheはCherryPyにリクエストを送信します。CherryPyはCherryPy/Sites/some site/image.pngを台無しにします。

リクエストをCherryPyに転送する前に、URLのスペースを再エスケープすることをRewriteRuleで指定する方法はありますか?

編集:私は役立つかもしれない何かへの参照を見つけました、しかし私は先に進み、スペースをアンダースコアに置き換え、ファイルを提供する前にCherryPyに変換を行わせることによって問題を解決しました。

誰かが持っているなら、私はまだより良い解決策を知りたいです。残念ながら、私は締め切りが迫っていて、今のところ自分でこれをいじくり回す時間がありません。後でこれに戻って、時間を見つけたらさらに更新を投稿することがあります。

4

1 に答える 1

4

最もよく知られている解決策については、http://tools.cherrypy.org/wiki/ModRewrite#Bewaretheencodingbugを参照してください。

于 2008-10-29T19:39:36.120 に答える