今回の状況
- サーバー移転
- ドメイン変更
- サイト構成変更
- なにからなにまで変更
- 記事のタイトルに.htaccessって書いたらエラー出た
リダイレクトは.htaccessで行います。基本的な記述方法は色々なサイトで紹介されているので、ここでは私がはまったものだけメモを。
ドメインもサイト構成も変わり、しかも、なんの法則性もなかったので1ページずつ書いていくことに決定。「旧サイトのどのページにアクセスしても新サイトのトップページにとばす」というのが一番楽なのですが、それはきっとやっちゃいけないこと。
.htaccessのお取り扱いにはくれぐれもご注意ください。
バックアップは心の友。
301リダイレクトの書き方
<IfModule mod_rewrite.c>
RewriteEngine On
ここに
設定を
書き連ねていく
</IfModule>
初めの
のリダイレクトを有効化する記述についてはサーバーによっては違うこともあり
例えば、CPIは以下のように書くようにと案内がありました。
RewriteEngine On
実は、今回のサーバーがCPIでこのことを知らなくて
だけ書いたら403 Forbidden となり、原因に気づけずあわわあわわと時間をとられました。
使い慣れたサーバー以外であれば、マニュアルを確認することをおすすめします。
パラメーター付きURLを別々のURLに301リダイレクト
旧サイトはWordPressで全ページがパラメーター付でしたので、それを新サイトのURLにリダイレクトしたい!
旧 http://www.old.com/?page_id=1
新 https://new.com/aaa/bbb/
例えば上記のような転送を行いたい場合は以下のように記述します。
RewriteRule ^$ https://new.com/aaa/bbb/? [R=301,L]
リダイレクトしたいURLが複数ある場合は、そのままつなげて下に書いていきます。
条件
ルール
条件
ルール…
みたいな。
RewriteRule ^$ https://new.com/aaa/bbb/? [R=301,L]
RewriteCond %{QUERY_STRING} ^page_id=2$
RewriteRule ^$ https://new.com/ccc/ddd/? [R=301,L]
パラメーター付きURLをひとつのURLに301リダイレクト
旧 http://www.old.com/?page=1
新 https://new.com/aaa/bbb/
旧 http://www.old.com/?page=2
新 https://new.com/aaa/bbb/
旧 http://www.old.com/?page=3
新 https://new.com/aaa/bbb/
上記のようなパラメータ付URLを全部ひとつのURLに転送したい時。
RewriteRule ^$ https://new.com/aaa/bbb/? [R=301,L]
リダイレクトは上から(先に書いてある方から)順番に処理されていきます。
うまくいかない場合は書く順番を見直すといいかも。
参考にさせていただきました
確認ツール