4

自分のマシン(ポート80)でApacheサーバーを実行しています。自分のマシン(ポート8080)でZopeサーバーを実行しています。

ドメイン(今はwww.example.comを使用しましょう)に関係なく、すべてのユーザーをzopeインスタンスにシームレスにプッシュする必要があります

ブラウザに入力した場合のIEhttp ://www.example.com/mysite

http://www.example.com:8080/mysiteの効果が表示され ます

しかし

URLに http://www.example.com/mysiteと表示したい

(サブ)ドメインは、同じサーバーを指す2つまたは3つのドメインを持つため、関係ありません。

mod_rewriteまたはmod_proxyを見ているは​​ずですか?

mod_rewriteが半分機能していますが、ブラウザの内容が変わりますか?

現在試しています

RewriteEngine on    
RewriteRule ^($|/.*) http://localhost:8080/$1 [P]

しかし、サーバー500を取得します

「http:// localhost/mysite」を使用して接続する

4

2 に答える 2

3

(プロキシ)ルールを使用するかmod_rewrite、必要な処理を実行するために使用できます。構成を使用すると、次のようになります。Pmod_proxymod_rewrite

RewriteRule ^/mysite/(.*) http://www.example.com:8080/mysite/$1 [P]

を使用するmod_proxyと、構成は次のようになります。

<Location /mysite/>
  ProxyPass http://www.example.com:8080/
  ProxyPassReverse http://www.example.com:8080/
</Location>

どちらもほぼ同じことを達成します。Locationでブロックを使用するProxyPassと、フロントエンドサーバー上のこのパスに他の構成ディレクティブを簡単に適用できます。

于 2012-08-13T15:01:38.427 に答える
3

VirtualHostMonsterZopeは、パス内のフラグを使用して、特別な書き直しで、すぐに使用できるシナリオをサポートします。これにより、Zope(および拡張機能としてPlone)によって生成されたURLが、プロキシされたリクエストに対しても正しいことが保証されます。

との両方 mod_rewriteを使用する必要がありmod_proxyます。これらは協調して動作します。

適切なリライトURLの作成を容易にするために、誰かが優れたRewriteRuleWitchを作成しました。特定の出力例を接続すると、次のようになります。

RewriteRule ^/mysite($|/.*) \
http://127.0.0.1:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/mysite/VirtualHostRoot/_vh_mysite$1 [L,P]

したがって、をhttp://www.example.com/mysiteルートとするURLについては、ローカルホストポート8080で実行されているサーバーから提供されるように書き直し、Zopeが同じルートでURLを生成するようにします。

詳細については、ZopewikiのVirtualHostMonster機能に関する詳細なドキュメントを参照してください。

于 2012-08-13T15:32:21.460 に答える