サイトが異なるサーバーでホストされているか、共通のドキュメント ルートを共有していない場合は、mod_proxy に依存する必要があり、P
書き換えルール フラグを使用できます。たとえば、www.example.com
のドキュメント ルートにある htaccess ファイルの次のルールは次のとおりです。
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ http://www.sample.com/default.php?from=%1 [L,P]
リクエストhttp://www.example.com/
を受け取り、目に見えないようにプロキシしhttp://www.sample.com/default.php?from=example
ます。ブラウザの URL アドレス バーは残りhttp://www.example.com/
ます。
ルールはリクエスト URI に対してのみ一致することに注意してください/
。もっとやりたい場合は、正しい正規表現とグループ化を作成する必要があります。
sample.com サイトにリダイレクトがある場合はProxyPassReverse
、リダイレクトを書き換える必要があります。Cookie が含まれているかどうかも参照ProxyPassReverseCookieDomain
してください。ProxyPassReverseCookiePath
代わりに仮想ホストまたはサーバー構成でこれを実行できる場合はProxyPass
、mod_rewrite の代わりに単純に使用することを検討してください。ディレクティブはProxyPass
htaccess ファイル内では機能しません。
編集:
すべてが同じドキュメント ルートにあるため、何もプロキシする必要はありません。単に:
RewriteCond %{HTTP_HOST} !^www\.sample\.com$ [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^/?$ /default.php?from=%1 [L]