WordPressのリダイレクト方法
サーバーを移管しドメインを変更して、基本的な移管作業は比較的スムーズに完了しましたが、もう少し旧サーバーのレンタル期間が残っているので、旧ドメインからのリダイレクト設定を行うこととしました。
ネットで検索するとRedirectionというプラグインを用いるといいらしいというのがわかったのですが、試してみたところなぜかうまくいきません。
うまくいかなかったので確認できませんでしたが、移管前後でディレクトリの構成が同じ場合に、 Redirectionで各ページを対応するページにリダイレクトさせることが可能なのかどうかが今一わかりません。
ページ毎にリダイレクト設定しなければならないとすると非常に煩雑なので、うまく動作すればできるのかもしれません。
そこで、仕方がないので別の方法を調べてみました。
結果的には、.htaccessを以下のようにすることでうまく動作しました。
前提として、Wordpressのバージョンは3.4.1、使用テーマはtwentytenで、移管前後でディレクトリの構成(サーバーにアップロードしている一連のファイルのフォルダの構成)は同一です。
また、”wordpress”というフォルダに関連するファイルが格納されています。
もともとwordpressの一連のファイルのなかに.htaccessというファイルが存在しているので、このファイルに以下の最初の一行を追加しました。そして、このファイルをアップロードして完了です。
——————————————————————-
Redirect permanent /wordpress https://derukui.com/wp/wp
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
———————————————————————
最初は単に、
Redirect 301 / https://derukui.com/wp/wp/
と記述して、.htaccessを作成してアップロードしてみました。
基本的にこれだけでも、Google等の検索結果で表示される各記事は正しくリダイレクトされていましたが、一つだけ問題がありました。
というのは、ブログのタイトルで検索した場合に表示されるリンクをクリックするとトップページはない特定のページが表示されてしまうことです。
最終的には上記の記述に辿り着みましたが、「もしかして?」とRedirect 301 / https://derukui.com/wp/wp/のあとに”# BEGIN WordPress”以下を記述してみると、トップページはトップページに正しくリダイレクトされました。
301リダイレクトについては、書かれているページがたくさん存在しますが、単に”Redirect 301 / https://derukui.com/wp/wp/”というような記述をすればよいとしていものもあって混乱しましたが、少なくともWordpressの場合はもともとある記述を消してはならないということのようです。
そういわれてみれば、なんとなくindex.phpを読み込むことを指示しているような感じがするので(細かいことはわかりません)、これを消してしまったらトップページが正しくリダイレクトされないというのも当然なのかもしれません。
日々成長