1

私の質問はRewriteMapapache2に関するものです。リライト条件を適用して、プロキシ上のすべてのリクエストが完全に新しいドメインにプロキシされるようにします。

たとえばlocalhost/test、または他のURLは次の場所に移動する必要がありますwww.mydomain.com

RewriteRule / http://www.mydomain.com [P]

正常に動作します。localhostにアクセスしても、ブラウザのアドレス行に「localhost」が表示されますが、mydomain.comが表示されます。しかし、このmydomainサイトのリンクをクリックすると、「見つかりません」という応答が返されます。

mydomainのsourecodeには、たとえば次のリンクが含まれています。

<a href="/lab/sale.php">Link</a>

通常の方法でサイトにアクセスすると、次のようになり、正常にwww.mydomain.com/lab/sale.php動作します。

プロキシを介してサイトにアクセスし、rewriteRuleが実行された場合、リンクをクリックした後、次の場所に移動しますlocalhost/lab/sale.php。もちろん、これは存在しません。

質問:プロキシを介してサイトにアクセスするユーザーが、実際にこのサイトにアクセスするかのように、サイト全体を閲覧するにはどうすればよいですか?

4

1 に答える 1

1

RewriteRuleディレクティブは、ProxyPassまたはRedirect基本的に2つのノードをリンクし、それに続くすべてのものもプロキシされるようなものではありません。プロキシするのはリクエストURIのみであり、その他のプロキシでは/ないというルール。一致を作成し、それを後方参照として渡す必要があります。/lab//etc.php

RewriteRule ^/?(.*)$ http://www.mydomain.com/$1 [P]

または、%{REQUEST_URI}変数を使用できます。

RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [P]
于 2012-08-14T23:52:33.723 に答える