先日、.htaccessファイルをFTP経由で入れたり出したりしていた時に、
誤って別のWordPressブログの.htaccessを上書きしてしまうという事件をやっちまいました。
こういう、.htaccessを誤って消してしまった、
上書きしてしまって元の.htaccessに戻したいといった時の緊急対処法を4つ紹介します。
.htaccessを誤って消した、上書きした時の4つの復旧方法
誤って.htaccessを消してしまった場合、こういった復旧法があります。
緊急.htaccess復活方法
- WordPressテーマがCocoonであれば、自動バックアップがある(Simplicity2もチェック)
- BackWPupを使ってれば、そのバックアップに.htaccessがあるはず
- UpdraftPlusを使ってれば、ミラーサイトを作って.htaccessを作る(完全ではない)
- サーバー会社が持ってるバックアップから復旧する
それぞれ解説していきます。
消えた.htaccess復活技1:WordPressテーマがCocoonであれば、自動でバックアップされている
もしあなたが.htaccessを誤削除してしまったブログの
WordPressテーマがCocoonなのであれば、超ラッキーです。
なぜなら、Cocoonは.htaccessを誤って削除や上書きしてしまった時のために
自動でバックアップしてくれてるからです
(作者のわいひらさんがやらかした事があるらしく、こんな素晴らしい機能まで付けてくれてます。やっぱ神だわ。)
FTP経由でWordPressフォルダを開くと、
.htaccessのすぐ下に.htaccess.cocoonっていうのがあると思うんですけど、
それがバックアップです。
なので、.htaccess.cocoonを一回自分のPCにダウンロードしたら、
それを.htaccessに名前を変更、そして、
アップロードして壊れた.htaccessを上書きすれば、元通りに復旧するはずです。
Simplicity2の場合も、高速化前バックアップがある場合がある
WordPressテーマSimplicity2の場合も、同じくチェックしてみると、
.htaccess.xreplace_20190000.bakみたいなのがあれば、
それが、その日付時点のバックアップなので、同じように使えます。
ただ、そのバックアップには、Simplicity2を高速化する記述が入ってません。
たぶん、Simplicity2をアップデートした際に、自動的に高速化記述が.htaccessに加えられ、
高速化記述記入前のものが、xreplaceとしてバックアップ保存されてるものと思われます。
いずれにせよ、このxreplaceを使い、高速化記述は手動で加えれば良いでしょう。
.htaccessのSimplicity2高速化記述はこの方のブログを参照。
消えた.htaccess復活技2:BackWPupを使ってれば、そのバックアップに.htaccessがあるはず
もしあなたが、WordPressのバックアッププラグインの
BackWPupで作ったバックアップがあるのであれば、
単純にその中に古い.htaccessが入ってるはずです。
例えば、フォルダにバックアップを保存してるなら、
wp-contentのuploadsフォルダ内に、backwpup-0000xx-backupsってフォルダがあって、
そこにバックアップが入ってるはずです。
それを使って上書きすれば、.htaccessを元通りに復旧できるはずです。
消えた.htaccess復活技3:UpdraftPlusを使ってれば、ミラーサイトを作って.htaccessを作る(完全ではない)
次に同じくバックアッププラグインのUpdraftPlusを使ってる場合。
この場合、残念ながら、UpdraftPlusは .htaccess や wp-config といったファイルは
バックアップしてないんです。
ただ、ほぼ同じ設定の.htaccessを作る事は可能なので、
WordPressにログインできなくなった、真っ白になったみたいなヤバイ状況ならこの方法で復活できるはずです。
UpdraftPlusを使って消えた.htaccessを復活手順
手順としては
- 別のドメインにWordPressを新規インストールする(サブドメインでOK)
- その新WordPressにUpdraftPlusを使ってリストアする
- リストアすると、そこに.htaccessファイルができる
- それをメモ帳で開いて、アドレスが変わってしまってる部分がないかチェックしたのちに使う
この方法で復旧できるはずです。
(ただし、過去に.htaccessに直書きした情報、例えばリダイレクト設定などは消えてる場合が多い)
1.別のドメインにWordPressを新規インストールする(サブドメインでOK)
ようは、過去にUpdraftPlusで作ったバックアップを使って、
コピーサイト(ミラーサイト)を作ります。
例えば、nebi.comなら、新しくcopy.nebi.comみたいなサブドメインを作って、
そこに新規でWordPressをインストールします。
2.その別WordPressにUpdraftPlusを使ってそのままリストアする
で、その新規でインストールしたWordPressにも、UpdraftPlusをインストールして、リストアします。
リストア作業の詳しいやり方については、こちらを参考にしてください。
簡単!WordPressを違うドメインに変更、引っ越しする方法
↑この過程の5項の「データベースの書き換え」はやらなくても大丈夫です。
3.リストアすると、そこに.htaccessファイルができる
リストアが完了したらログインして、その後FTPで、
新WordPressをインストールしたディレクトリにできている.htaccessを
お使いのPCにダウンロードします。
(このコピーサイトは、念の為に「検索エンジンがサイトをインデックスしないようにする」に設定しておきましょう。)
4.それをメモ帳で開いて、アドレスが変わってしまってる部分がないかチェックしたのちに使う
それを一度、メモ帳やterapadなどで開きます。
で、中身が新ドメインに変わってしまっている場合は、それを元のドメインに書き換えます。
例えば、nebi.comがcopy.nebi.comに変わってたり、
ディレクトリが、/copy/nebi.comみたく変わってたりするので、
copy.nebi.comにリストアしたのであれば、「copy」で検索してみて、
変わってしまってる部分があれば、削除したり、修正し、上書き保存します。
その修正した.htaccessを使えば、復旧できるはずです。
ただ、最初に言った通り、リダイレクト設定などを.htaccessに直書きしてた場合、それが消えてる確立が高いので、それは再度自分で再記入する必要があります。
消えた.htaccess復活技4:サーバー会社が持ってるバックアップから復旧する
エックスサーバー、Colorfulbox、ConoHa WING、Mixhostなどのレンタルサーバー会社は、通常数日分のデータが自動バックアップされてます。(ロリポップだと月330円の自動バックアップオプションに事前に入ってないとバックアップされてない)。
なので、その自動バックアップからファイル取得、もしくはリストアする事で、消えたhtaccessファイルを復活させる事も可能です。
(復元機能(リストア)を使う場合は、現時点のデータを必ず別途バックアップしておきましょう。復元機能で1日前などに戻してしまうと、今日入力したデータなどが逆に消えてしまいます。)
バックアップの取得、復元の使い方の例
Xサーバーの場合
バックアップに行き、
自動バックアップデータの取得、対象を指定で取得で、Web領域を選んで、取得すれば、
過去の日付のファイル郡がダウンロードできますから、その中にhtaccessも入ってます。
ColorfulBoxやMixhostの場合
JetBackupのFile Backupsに行きます。
↓
FILE MANAGERへ
↓
FTP階層が表示されるので、Show Hidden Filesにチェックを入れて、WordPressフォルダに入れば、htaccessがあります。
「Download Selected」で、ダウンロードできます。
ConoHa WINGの場合
Conohaの場合は、上のレンタルサーバー達のように、取得ができないため、1日前にリストアする事で復旧させる方法を取る必要があります。
サーバー内のすべてのサイトが1日前に戻ってしまうので、実行前にそれぞれ最新のバックアップを取っておく必要があります。(じゃないと今日の記事や変更が逆に消えてしまう)
サーバー管理、自動バックアップから、Webリストア可を押します。
確認画面で、リストアを押せば、全サイトが前日の状態に戻ります。
ロリポップの場合は、公式マニュアルをどうぞ!
.htaccessが復旧不可能なら、手動で設定し直す。
.htaccessには、基本的には、
- リダイレクトの設定
- キャッシュプラグインなどのON/OFF設定
などが書かれてます。
特にリダイレクト設定などを過去書いてない場合は、万が一消してしまった場合でも、問題なくサイトが表示されたりもします。
みたいな甚大な被害が出た場合は、
- URLと本体の場所にズレがある
- プラグインが悪さをしている
などが考えられるので、
- 正しいURLにリダイレクトさせる記述を書き直す
- プラグインをFTPから一時的に止めるなどしてみる
といった事をする事で回復する可能性が十分あります。
URLと本体のディレクトリにズレがないか?
例えば、WordPressをインストールしたフォルダが
abc.com/public_html/main/のようなディレクトリだけど、
https://abc.com/ がURLの場合、本体位置とURLにズレがあります。
本体がabc.com/public_html/ にインストールされてるのであれば、htaccessが空でも正しく表示されますが、
mainフォルダの中にインストールしたのであれば、URLとのズレがありますから、それをhtaccessに記述しないと、正しく表示されません。
この辺のやり方についてはこのブログが詳しいです。
プラグインとサーバーのキャッシュをFTP側から止めてみよう。
また、htaccessに記述されていたキャッシュプラグイン設定などの影響でサイトが表示されなくなっている可能性もあるので、
- レンタルサーバー側のキャッシュ設定を停止してみる
- プラグインをFTPから片っ端から停止してみる
などで、サイトが表示される可能性があります。
まずは、レンタルサーバー側のキャッシュ設定を使っている場合は、それを全部止めてみて、ブラウザのキャッシュも削除して、表示されないか確認してみましょう。
それでもダメなら、WordPressのプラグインの影響の可能性もあるので、
FTPからプラグイン名の頭に[-]を付けるなどして、
一時的にプラグインを停止させる事で、表示される可能性もあります。
特にW3Total Cacheプラグインなんかは、逆に削除するとバグったりするので、
もし使ってる場合は、プラグインの停止方法などをググって正しい手順でやると直る可能性があります。
WordPressの.htaccessの基本の記述
WordPressの場合は、基本としてこの記述があります。
コピーしました
コピー
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
これだけ書いておくだけでも、復活する可能性はあります。
これからは .htaccessを必ず自動バックアップしておこう!
私は今回たまたま.htaccessを間違って上書きしてしまったブログが
Cocoonだったので助かりましたが、
WordPressテーマがCocoonでないブログでは、
今まではUpdraftPlusでバックアップを取ってましたが、
実はUpdraftPlusは、.htaccessやwp-configまではバックアップしてくれないんです。
なので同時にBackWPupもインストールして、
BackWPupには自動で.htaccessやwp-configだけ
別途バックアップさせるように設定し直しました。
ファイルタブに「特殊ファイルを含める」という欄があるので、これをチェックしておけば、ちゃんと.htaccessもバックアップされるわけです。
もちろんBackWPupだけでWordPress全部をバックアップさせる事も可能なんですが、
個人的には、UpdraftPlusの方が、ブログがぶっ壊れた時や引っ越す時に
簡単に完全再現できるので好きです。
なので、結局両方インストールして使う事にしました。
という事で、参考にして頂ければ幸いです。