エッセイとかレポートの寄せ集めブログ

WordPress 301リダイレクトしたら管理画面にアクセスできなくなった

2012年に作成し放置していたこのブログを、1年くらい前にリニューアルして再開させた。
そのときレンタルサーバーのサブドメインから独自ドメインに変更するのにどえらい苦労したわけだが。

そのときの記事:

WordPressドメイン変更でデータベース接続確立エラー原因と対処法



で、今回またドメイン周りの設定でひと騒動あったので忘備録を残しておこうと思う。
簡単に言うと、Redirectionでサイト単位で301リダイレクトかけたら管理画面にもアクセスできなくなっちまったっつー。
ほんと、当たり前だよな…自分がアホすぎて悲しくなる。
最終的に、管理画面を除外した301リダイレクトの設定を行って解決した。

そもそも一つのサイトでこんなにドメイン設定をすることなどあまりないと思うが…。
方向転換というか、予定変更というか…まぁそんなところだ。
私のアホっぷりだけでなく計画性のなさも露呈しているようでお恥ずかしい限りである。

環境

○レンタルサーバー
ロリポップ(ライトプラン)
○Wordpressバージョン
WordPress 4.7.9

作業概要

目的
サーバー上のサブディレクトリにあるWordpressのサイトURLをルートドメインに変更したい

●変更前
変更前の設定画面

●変更後
変更後の設定画面

手順
①Wordpress管理画面でサイトアドレス (URL)を設定する。
②サーバー上のルートディレクトリに一部書き換えたindex.phpを置く。
③念のため301リダイレクトをかける。

(変更前)http://terette.com/essay/

    ↓301リダイレクト↓

(変更後)http://terette.com/

経緯

そもそも、なんでまたドメイン周りの設定が必要になったかっつーと。
契約しているサーバー上には、本ブログともう一つブログがある。
つまり同じサーバーにWordpressを二つインストールしており、それぞれ下記のアドレスで運用している。

●http://terette.com/essay/ (本ブログ)
●http://terette.com/eye/ (もう一つのブログ)

で、それぞれのブログのURLをこうしたい。

●http://terette.com/(本ブログ)
●http://terette.me/ (もう一つのブログ)

ということで、まず本ブログのサイトアドレスの変更設定を行った。

サイトアドレスの変更設定

まぁこれに関しては色んな方が手順を紹介してくれているので、詳細は割愛する。

WordPress管理画面での設定

WordPressの管理画面にアクセスして、設定>一般設定のページに進む。
サイトアドレス (URL)の項目を変更する。

管理画面でアドレス設定を変更する

サイトアドレスのディレクトリにindex.phpを配置

このままではサイトにアクセスできないので、サイトアドレスに設定したディレクトリにindex.phpを置く必要がある。
まずFTPソフトなどでWordpressをインストールしているディレクトリにアクセスする。
私の場合は/essay/のディレクトリになる。
ここにあるindex.phpをローカルディスクにダウンロードし、以下の行を編集する。

// 変更前
require('./wp-blog-header.php');

// 変更後
require('./essay/wp-blog-header.php');

編集したindex.phpファイルをFTPソフトなどでサイトアドレスに設定したディレクトリにアップロード。
私の場合はルートディレクトリがこのような状態になる。

—————————————————————-
root

essay ←本サイトのWordpress

eye ←もう一つのWordpress

index.php ←アップロードしたファイル
—————————————————————-

基本的にはサイトアドレス変更の手順はこれで終わりである。
もうサイトアドレスでアクセスできるはずだ。

しかしここで私は思った。
アレ?301リダイレクトかけなくていいの?

Wordpressサイトアドレス変更に関する記事はたくさんあるけど、不随作業として301リダイレクトについて述べている人がいない。
え、でも「http://terette.com/essay/」でgoogleにインデックスされてるし、リダイレクトさせた方がいいんじゃね?
つーことで、独断で301リダイレクトをかけることにした。
でまぁ、この作業で失敗して大騒ぎしたわけだが。

301リダイレクトの設定

Wordpressサイトで301リダイレクトをかける場合、プラグインで簡単にできるので便利だ。
私は以前から「Redirection」というプラグインを使っていた。
なので今回も迷いなくRedirectionで設定することにした。

で、私は本当にアホだったんだがサイト全体レベルで301リダイレクトをかけてしまったのだ。
そうすると何が起こるかというと…。

管理画面もリダイレクトされちゃった

な、そうなるよな。
当たり前じゃんって話だわ。
だってサイトアドレスに対応するディレクトリには管理画面のファイル置いてないもの。

やっべぇ…管理画面にアクセスできないんだが。
やっちまったな。
Redirectionの設定をしなおしたくても、管理画面にアクセスできねぇ。
詰んだ。

こうなってしまったら、サーバー上のファイルを直接いじって解決するしかない。
まずRedirectionで設定した内容はどのファイルに書き込まれているのかを探した。
.htaccessに書き込まれているものとばっかり思っていたんだが…違うようである。
ぜんっぜんわかんねぇ。(笑)
マジ詰んだ。

仕方ない…。
どうなるかわかんないけど、サーバーからプラグインごと削除しちまうか。
ということで、サーバーのプラグインディレクトリにアクセスしてRedirectionフォルダをごっそり削除。

お~!リダイレクトは解除されたっぽい。
管理画面にも無事アクセスできた。
一安心である。
問題は301リダイレクトをどうやってかけるかだ。

.htaccessで管理画面以外にリダイレクトをかける

すっかりRedirection恐怖症になったので、.htaccessファイルで直接いじることにした。
まぁいろいろ調べて、下記の記述でうまくいったので載せておこう。
ちなみにいじる.htaccessは、リダイレクト元に置く。

(リダイレクト元)http://terette.com/essay/

   ↓301リダイレクト↓(管理画面のディレクトリは除外)

(リダイレクト先)http://terette.com/

// 管理画面を除外して301リダイレクト
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/wp-admin/)
RewriteRule ^$ http://terette.com/ [R=301,L]

もう一つのブログはどうしたか

ちなみにもう一つのブログは、これと同じやり方はできない。
なぜかというと、サーバーのルートディレクトリにindex.phpを二つは設置できないからだ。

ロリポップにはマルチドメイン機能があり、一つの契約で複数の独自ドメインを設定できる。
つまり、複数の独自ドメインのWEBサイトを運用できるのだ。

これはロリポップの管理画面で「独自ドメイン」と「アップロードフォルダ(サイトデータがあるディレクトリ)」を紐付けすればOKだ。
今後、さらにサイトが増える場合はロリポップのマルチドメイン機能を使用する。
ん?両サイトともこっちのやり方にすればよかったんじゃないか?
というのは後から気づいたのである。まぁいっか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です