専用のApacheサーバーでeコマースWebサイトを実行しています。 http://www.example1.com/blog
にアクセス可能なブログもありますが、ブログはeコマースウェブサイトと同じマシンでホストされていません。これを達成するために、人々がhttp://www.example1.com/blog
にアクセスしようとすると、http://www.example2.com/
を提供するためにメインのeコマースサーバーでリバースプロキシを設定しました。その2番目のサーバーはBitnamiのAMIを使用してWordPressを実行するAWS EC2インスタンスで、ファイアウォールルールを使用して、当社のeコマースサーバーのみにアクセス可能にします。リバースプロキシの背後にあるサブディレクトリにあるWordPress
WordPressでは、自分のサイトURLとホームURLの設定がともにhttp://www.example1.com/blog
に設定されています。私のWordPressサーバーの.htaccess設定は以下の通りです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
ほとんどの場合、これはうまくいきます。メインブログページとその上のすべてのHREFは、期待通りにhttp://www.example1.com/blog
で始まります。私の問題は、リダイレクトが正しく処理されていないことです。例えば、http://www.example1.com/blog/my-post
のようなポストのかわいらしいURLの後ろにスラッシュを残すと、間違ってhttp://www.example1.com/my-post/
にリダイレクトされます(「blog」サブディレクトリがないことに注意してください)。この問題は、リダイレクトから「blog」サブディレクトリを削除しているため、wp-adminインターフェイスの使用にも影響します。
私は、ブログサーバーのApacheやWordPressの設定で間違っていることがあると確信していますが、非常に長い間それを試してみることができませんでした。
どうすればこの問題を解決できますか?
編集:
のWordPressがサイトルートではなく、サブディレクトリにインストールされているブログサーバ上で、明確にします。
ProxyPreserveHost On
ProxyRequests Off
<Location "/blog">
ProxyPass http://www.example2.com
ProxyPassReverse http://www.example2.com
Order allow,deny
Allow from all
</Location>
任意の解決策 –