web-dev-qa-db-ja.com

ApacheTomcatの書き換え

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

ですから、例えば、可能であればこれをやろうとしています。

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

ユーザーがsite.example.comにアクセスすると、URLはこれらの行に沿って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(companyB.com)を指すように変更しました

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

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

2
POPEYE1716

Rewritecondまたはrewritemapの正規表現が一致していないと推測します。私はそれらが滑りやすいことを発見しました。

非常に詳細なmod_rewriteロギングがあることを確認してください(Apache 2.4 set LogLevel 、Apache 2.2 set RewriteLog )Webサーバーの管理者でない場合、これはおそらく役に立ちません君は。

次のようなリダイレクトを試してください。

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

foobarは意味のない場所であるため、実際のトラフィックに干渉することはありません。ブラウザでfoobarを指定すると、意味のない別の場所にリダイレクトされてエラーが発生しますが、URLバーには%{HTTP_Host}varに含まれています。 (アサリと魚は引用符として機能するので、%{HTTP_Host}スラッシュまたは空白、その他のトリッキーな文字が含まれています。表示されます。)

(.htaccess互換性のためにfoobarから削除/ thnx @ w3dk)

2
Dylan Martin

私がやったことは、proxypass/testsite.example.comを設定することです。

サーバーが/ testを確認すると、site.example.comからコンテンツが読み込まれるようにします。

0
POPEYE1716