質問: ### 前提・実現したいこと 現在、wordpressを利用してブログサイトを運営しております。 そのブログサイトのアクセス数が、現在のサーバースペックでは耐えきれなくなったため、 サーバー移行(ブログ引っ越し)をしようとしています。 その際に、301リダイレクトを用いて現ブログ→新ブログ(移転先)に各ページをリダイレクトさせることが主な目的です。 例)http://●●●●.jp/blog/?p=00000 → http://▲▲▲▲.com/?p=00000 ### 発生している問題・エラーメッセージ リダイレクトさせる際の問題点ですが、タイトル通り、 リバースプロキシでドメインを設定しているため、 `.htaccess`でのURLのReWriteがうまくできません。 現状↓ ●●●●.jpというECサイトを別サーバーで運営。 http://●●●●.jp/blog(現在のブログドメイン)は、リバースプロキシの設定で 別サーバーで展開している「●●●●.jp」のドメインの傘下にある状態です。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/df91cac893fef3c0dcc8fa0723928be6.jpeg) wordpressのプラグインを使用しても、下記のようなメッセージが出てリダイレクトが出来ない。 ``` 相対 URL (/blog/) で、このドメイン (XXX.XXX.XXX.XXX) 上にある URL のみからの転送が可能です。 ``` ### 該当のソースコード .htaccessで試した記述(※参考サイトソースをそのままコピペもあります) ``` Redirect 301 /blog/?p=00000 http://▲▲▲▲/?p=00000 ``` ``` RewriteRule ^/old-page.html$ http://www.example/new-page.html [R=301,L] ``` 正規化しようとすると500エラーに。 ``` RewriteEngine on RewriteCond %{HTTP_HOST} ^(example.com)(:80)? [NC] RewriteRule ^(.*) http://www.example.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.example.com/$1 [R=301,L] ``` ``` RewriteEngine On RewriteRule ^it/wordpress/post-1217/ https://lab.maro-log.net/post-1217/ [R=301,L] RewriteRule ^it/wordpress/post-1235/ https://lab.maro-log.net/post-1235/ [R=301,L] RewriteRule ^it/wordpress/post-1267/ https://lab.maro-log.net/post-1235/ [R=301,L] RewriteRule ^it/wordpress/post-1294/ https://lab.maro-log.net/post-1235/ [R=301,L] RewriteRule ^it/wordpress/post-1304/ https://lab.maro-log.net/post-1304/ [R=301,L] ``` ### 試したこと .htaccessでの301リダイレクト処理。 wordpressプラグインでの301リダイレクト処理。 phpでのリダイレクト処理などはまだです。 ### 補足情報(言語/FW/ツール等のバージョンなど) ・ブログはwordpress ・ブログのサーバーに関してはplesk・ftpなどもいじれます。 ・リバースプロキシは運営しているECサイト「●●●●.jp」の契約しているmakeshopの機能を使用して、設定しています。 ・筆者自身はphpがちょっとわかる程度で、.htaccessやサーバーサイドのことはさっぱり分からずで困っております。 ・できればリダイレクトテスト時に、キャッシュを残さない方法もあれば教えていただきたい。
回答: Bサーバのリバースプロキシは、Aサーバのサイト(現blogサイトの実体)を、http://●●●●.jp/blogであるように見える設定になっている訳ですよね? そして、現在Aサーバで動かしているblogサイトをCサーバで動かすようにしたい訳ですよね。 だとすれば、リバースプロキシの設定を、Cサーバのサイト(新blogサイト)をhttp://●●●●.jp/blogであるように変更するのが素直な解決方法のように思います。