web-dev-qa-db-ja.com

ドメイン名を保持していないApacheリバースプロキシ

私はサイトを持っています。 example.wordpress.com(サブサイトwordpressマルチサイト)ですが、そのサイトのコンテンツを別のドメイン(cooking.comなど)でユーザーに表示したいのですが、両方のドメインにAレコードを設定しています同じIPに転送し、mod_proxyを使用する必要があるURLにドメイン名を保持したい場合は、これを読みました。これが私の設定です。

<VirtualHost *:80>
    ServerName cooking.com

    ProxyRequests Off
    <Proxy *>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Proxy>
    ProxyPass / http://example.wordpress.com/
    ProxyPassReverse / http://example.wordpress.com/
</VirtualHost>

ただし、ブラウザにcooking.comと入力すると、example.wordpress.comにリダイレクトされ、cooking.comの代わりにits URLが表示されます。 Apacheファイルの何が問題になっていますか?

代わりにmod_rewriteの使用も試みましたが、同じ結果が得られます。

RewriteEngine On
RewriteCond %{HTTP_Host} ^cooking.com$ [NC]
RewriteRule ^(.*)$ http://example.wordpress.com/$1 [L,P,NC]

mod_proxymod_proxy_httpを有効にし、Ubuntu 16.04でApache 2.4を使用しています。

2
Liliane

問題を解決しました。私にはわからない理由で、元のサイトはHTTPSを強制していました(私はそれを構成しませんでしたが)。ユーザーezra-sが提案したように(応答ヘッダーの場所を調べたところ)、ProxyPassReverseをHTTPSドメイン(無限ループにつながる)にリダイレクトするように変更しました。ただし、Apacheログを調べてグーグルで調べたところ、解決策はSSLProxyEngine onを追加することでした。これで動作し、ブラウザのURLを変更せずに、サイトにリダイレクトされます。

私のような初心者への注意

ブラウザの開発者コンソールで応答ヘッダーを確認し、[ネットワーク]タブに移動して、ページを(再)ロードするだけです。

wordpressマルチサイトユーザー向けの注意

サブサイトのドメインは変更されていますが、サイトには古いドメイン宛てのページへのリンクが含まれています。

1
Liliane