0

Web サイトはhttp://www.siteone.comにあり、URL をhttp://www.anothersite.com/siteoneのようなものまたはサブドメインhttp://siteone.anothersite.com に書き換えたいと考えています。 .

Web サイトはhttp://www.siteone.comでのみホストされ、ファイルが anothersite.com に移動またはコピーされることはありません。

.htaccess を使用してこれを行うことは可能ですか、またはこれを行う別の方法はありますか?

編集(以下は、ローカルホストのhtaccessで行ったことであり、機能していないようです)。何が間違っているのかわかりません。この段階でライブサイトを台無しにしたくありません。

RewriteCond %{HTTP_HOST} /localhost/mysite [NC] 
RewriteRule ^(.*)$ http://www.anothersite.com/siteone/$1 [L,P] 
ProxyPassReverse /localhost/mysite http://www.anothersite.com/siteone/
4

1 に答える 1

0

mod_proxyが読み込まれている限りP、書き換えルールでフラグを使用してプロキシ要求を逆にすることができます。htaccess ファイル内でこれを行うことができます。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?siteone.com$ [NC]
RewriteRule ^(.*)$ http://www.anothersite.com/siteone/$1 [L,P]

これにより、 にアクセスするhttp://siteone.com/some/path/と、リクエストが逆プロキシされhttp://www.anothersite.com/siteone/some/path/、そのリクエストのコンテンツが元のリクエストに送信されます。これはブラウザの URL のままhttp://siteone.com/some/path/です。

リダイレクトなどを処理するには、ロケーション ヘッダーのプロパティが書き換えられるようにProxyPassReverseを設定する必要があります。

ProxyPassReverse / http://www.anothersite.com/siteone/

また、 のサイトが Cookie を設定する必要があるかどうかも参照しProxyPassReverseCookieDomainProxyPassReverseCookiePathくださいwww.anothersite.com

注:ProxyPassディレクティブは vhost およびサーバー構成でのみ使用できますが、ProxyPassReverseディレクティブは実際には mod_rewrite と組み合わせて htaccess ファイルで使用できます。

于 2012-12-20T21:26:58.687 に答える