.htaccessの設定を消してしまったときの対処方法

.htaccess

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

新しいウェブサイトの準備中に誤って.htaccessという重要なファイルの設定を消してしまい、ウェブサイトが表示されなくなってしまいました。

同じようなことをやらかしてしまった人のために、その顛末を残しておきます。

https-failed 惨劇!SSL化で絶対にやってはいけない間違い!

.htaccessとは?

「.htaccess」は、一言でいえば「サーバの設定ファイル」です。

きちんと理解するためにはサーバ関連の基礎知識が必要になります。

ウィキペディアの説明ページをみて、簡単と思うか、さっぱりわからないと思うかで基礎知識の有無がわかりますw
.htaccess – Wikipedia

技術的な説明は省略しますが、その.htaccessというファイルにちょっとした設定を書き込むことで、例えば「ベーシック認証」が使えます。

ベーシック認証を使えばウェブサイトにIDとパスワードを設定でき、それらを入力しなければ表示できなくなります。

簡易的な認証なのでセキュリティレベルは高くありませんが、ちょっと隠しておきたいときなどに簡単な設定で使えて便利です。

.htaccessの設定を消してしまった原因

私が.htaccessを必要とした理由は、ベーシック認証を使うためでした。

まずはFTPソフトを使ってサーバに接続。私はTransmitを使っています。

Transmit

Transmit
4,100円
(2016.02.01時点)
posted with ポチレバ

設定対象のサーバには.htaccessが設置されていないように見えましたが、これが大間違いでした!

実際には.htaccessが設置されていないのではなく、不可視ファイルになっていたのです。

WindowsでもMacでもユーザーにあまり触って欲しくないファイルは初期状態では見えないようにしてあったりします。

.htaccessはサーバの設定が書かれた重要なファイルなので不可視なのは妥当です。

パッと見たところ.htaccessがなかったので「新規作成」してしまいました。

しかし作ったはずのファイルが見えません。おや?もう一度新規作成。やっぱり見えない。

そして今まで見えていたウェブサイトを表示させようとしたところ見えない…

このとき全てを理解しました(滝汗)

設定を変更して不可視ファイルを表示したところ.htaccessが現れました。

ファイルを開いたら、まっしろしろ。オレの頭の中のようにね!

フォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォォ!

.htaccessは大切な設定が書かれていましたが、新規作成して上書きしたことにより.htaccessという名前が付いた中身のないファイルができてしまったのです。

名ばかり.htaccessの誕生です。笑えない。

https-failed 惨劇!SSL化で絶対にやってはいけない間違い!

.htaccessの設定を消したときの症状

.htaccessの設定削除後、ウェブサイトには次のように表示されました。

「サーバーの PHP バージョンは 5.1.6 ですが WordPress 4.4.1 は 5.2.4 以上のみでご利用になれます。」

後からわかったことですが.htaccessにはPHPバージョンが書かれていました。

この記述を消してしまったために、上記のようなエラーメッセージが表示されたのです。

.htaccessの設定を消したときの対処方法

やらかしてしまったのは日曜日の夜。月額2,000円ちょいの安価な共用サーバに24時間電話サポートなどありません。

さあどうしよう。悶絶しながら考え、ひらめきました。

私は同じ共用サーバで、今回やらかしてしまったものも含めて3つのウェブサイトを運用しています。

残る2つのウェブサイト用スペースにも、同じく.htaccessが設置されているはず。

いずれも初期状態から設定は変えていないつもりで、この内容をコピペすればウェブサイトは元通り表示されるのでは。

そう考えて最初にウェブサイトAの.htaccessをコピペしましたが、トップページしか表示されず、ほかのページはNot Foundになりました。

泣きそうになりながらウェブサイトBの内容をコピペしたところウェブサイト復活!\(^o^)/

すべて同じ設定だと思っていましたが実際には.htaccessに記述されていた内容が違っていたのです。

ウェブサイトAは他社サーバから引っ越しているし、ウェブサイトBはその後に作成しているので設定が違ったのかもしれません。

コピペでよいのか自信がなかったので、サーバ会社のサポートに.htaccessの確認をお願いしたところ拒否されました(涙)しかしこれは仕方のないことでした。

ユーザーが設定は変えていないと言っても、変わっている可能性があるからです。実際ウェブサイトAとBの設定は異なっていました。

意図的に変えたつもりはなくても、何かの設定を変更したときに書き換えられている可能性があり、ユーザーが気付いてないだけかもしれません。元の状態が不明なので、対応しようがないのです。

サポートの対応は親切で、私が借りているサーバの.htaccessに初期状態で書かれているのはPHPのバージョンとphp.iniの設定だけなので、サーバの管理画面でそれらを再設定すれば設定は最初と同じになると教えてくれました。

再設定は管理画面でボタンをポチポチ押すだけです。すぐに実行しました。ウェブサイトは問題なく動いています。あーよかった。

本日の教訓:「中途半端な知識を持ったやつが一番あぶない(自戒)」

以後注意します…

https-failed 惨劇!SSL化で絶対にやってはいけない間違い!