ごきげんよう
WordPressには便利なプラグインが沢山あります。
その中でも301リダイレクトを行ってくれる「Simple 301 Redirects」があります。
.htaccessを書きかえれば良いんですがプラグイン上からもいけるんです。
今回は、「Simple 301 Redirects」の設定ミスで管理画面に入れなくなったのでDB復旧させた話をしたいと思います。
1. Simple 301 Redirectsとは
301リダイレクトをしてくれるもので、ページURLを変更した際にリダイレクト元とリダイレクト先を記載することで転送できるものです。
WordPressのルート(例えばhttp://example.com部分)は記載せずにそれ以降を記載します。例えば/wp/とか。
それによって、リダイレクトが出来ます。
2. なにをやってしまったのか
簡単に言うとブログ本体がある/wp/に対して/にするルールを誤って作ってしまったこと。
下記の様になります。左がリダイレクト元、右がリダイレクト先。
[html]
/wp/.* => /.*
[/html]
「ワイルドカードが使えるよ」という説明があるのに正規表現だと勘違いして記載してしまったわけです。
いや、上の記載の時点で既に正規表現でも危ないんですが、その時の私は知る由もなかった。
そして、管理画面から出ると、再び管理画面(基本はwp-admin)に入ろうとしても
[html]
http://example.com/wp/wp-admin => http://example.com/.p-admin
[/html]
という感じになってしまいます。
つまり、これでURLを叩いても管理画面に行けない状態に。本当に「何故やった」というレベルのネタです。
素直に、使い慣れた.htaccessを使って試せばよかったのに。
3. DBを復旧させてみた
探してみるとループになっている人は意外と居ます。
functions.phpに、
[html]
update_option(‘301_redirects’, ”);
[/html]
と書けという情報がありましたがやり方が悪いのか上手く行きませんでした。
次に、「wp_optionsテーブルの301_redirectsのレコードを探してクリアすれば良いよ」という話が。
確かに、この301_redirectsは変更前(事件前にバックアップしていたものから確認)、変更後の値が異なっていました。
変更前の値に戻してみたら動いたっぽいです。管理画面に入れました。
が、ここでSimple 301 Redirectsを止めれば良いものの設定変更してしまって再び管理画面に入れなくなるという失態。
こんな事もあろうかとその日の途中で取っておいたDBのバックアップデータをWordPressに叩きこみました。
再び管理画面に入れたので「Simple 301 Redirects」を削除して再びの悲劇が起こらないように対策。
予約投稿済み2記事が消える事になりましたが、軽くて良かったです。
DBは変わっても画像は残ったままなのでDBに含まれていない画像は一旦削除して再度アップしましょう。
DBでしっかり管理されているんですね。
4. 最後に
今回は、「Simple 301 Redirects」の設定ミスで管理画面に入れなくなったのでDB復旧させた話をしました。
皆さん、バックアップの大切さが分かりますよ。
タイミング良くバックアップしておいて良かったです。
困ったらDB変更する気持ちで行きましょう。
そもそも、.htaccess使いましょう。
それでは ごきげんよう
source:
WordPress › Simple 301 Redirects « WordPress Plugins
WordPress › Support » Infinite Loop – HELP!
WordPress › Support » [Plugin: Simple 301 Redirects] Delete a redirect?
SQLite Manager :: Add-ons for Firefox