Apache Tomcat の書き換え

Apache Tomcat の書き換え

私がやろうとしているのは、URL が入力されたときに と表示されるように書き換えルールを設定することですexample.com/test

たとえば、可能であればこれを実行しようとしています。

のCNAMEを(ベンダー側のdevリモート環境)site.example.comを指すように設定しました。site.devexample.com

ユーザーがアクセスすると、site.example.comURL は次のように書き換えられますexample.com/test

これまでのところ、動作していないようですが、訪問するとsite.example.comそのまま残ります。

# rewrite rules for site.example.com
RewriteCond %{http_host} ^site\.example\.com [NC,OR]
RewriteCond %{http_host} ^www\.site\.example\.com [NC]
RewriteRule $ http://example.com/test/ [R,L]

リバースプロキシを実行してから、そこから書き直す必要がありますか?

編集: 申し訳ありません。もう少し説明すべきでした。site.example.com は test.com (会社 A) が所有しています。そのため、CNAME を site.devEnvironment.com (会社 B.com) を指すように変更しました。

test.com/test は私たちのサーバーとディレクトリであり、URL を site.example.com ではなく test.com/test に書き換えようとしています。

リダイレクトはhttpd.confファイルで設定されていますが、これが役立つかどうかはわかりません。

答え1

rewritecond または rewritemap 正規表現が一致していないのではないかと思います。これらはわかりにくいことがわかりました。

非常に詳細なmod_rewriteログ(apache 2.4設定)があることを確認してくださいログレベル、Apache 2.2 セット書き換えログ) Web サーバーの管理者でない場合は、おそらくこれは役に立ちません。

次のような書き換えルールを試してください:

RewriteRule ^foobar /clams/%{HTTP_HOST}/fish [R,L]

は意味のない場所なのでfoobar、実際のトラフィックには影響しません。ブラウザで を指定するfoobarと、別の意味のない場所にリダイレクトされ、エラーが表示されますが、URL バーには var に含まれる内容も正確に表示されます%{HTTP_HOST}。(clams と fish は引用符として機能するため、 に%{HTTP_HOST}スラッシュや空白などの扱いにくい文字が含まれている場合は、それが表示されます。)

(.htaccess 互換性のため、foobar から / を削除しました。@w3dk に感謝します)

答え2

私が最終的にやったことは、proxypass /test site.example.comを設定することでした

サーバーが/testを見ると、site.example.comからコンテンツをロードするようになります。

関連情報