サーバーのお引越し・移行でファイルをごっそり復元したり、WordPress本体ファイルの入れ替えをしたとき.htaccessの記載が原因で2種類のエラーがでたので、原因と対処してエラーを解消する方法を紹介します。
- アクセスしようとしたページが表示できない(機能しない)という意味の、500 Internal Server Errorが出た原因と解決方法。
- トップページは表示されるけど、記事などクリックすると、404 File Not Foundが出た原因と対処方法
- WordPressファイルの入れ替えや、サーバー移行中のエラーの解決方法ページを紹介
ファイル移行中に起こった、http 500エラーはサーバー内部でのエラーでWordPressの管理画面にも入れません。トップページは入れるのにそれ以外の投稿が表示されない404 File Not Foundは該当の場所にファイルが存在しないのが原因なのでエラーを解消してください。
.htaccessで500 Internal Server Errorが出る原因と解決法
原因は、.htaccessに書いた記載ミス、文字コードの間違い、サーバーによって書けばエラーが出るコードなどです。
サーバー移行テストの中で、データベースがある状態でファイルの入れ替えをしているとき、.htaccessを設定する前にブログを開くと、サーバー内部のエラーを意味するhttp 500 Internal Server Errorがでてました。
php_flagの記載があるのが原因で500 Internal Server Error
ロリポップではエラーはでなかったけど、エックスサーバーで.htaccessに下記のようなコードがあると、500内部サーバーエラーが出ます。へテムルなどのサーバーも。
php_flag display_errors off
ロリポップでは、php.iniの設定にphp_value, php_flagを利用可能にする:Off or Onの設定があるけど、エックスサーバーにはこの記載はありません。
.htaccessにphp_valueやphp_flagの文字列を書くと、php.iniの設定の関係でエラーが出るのでしょう。記載を消すと500 Internal Server Errorは解消されます。
例えば、display_errors などの設定のon・offはphp.iniで設定してください。書くとエラーが出るサーバーもあるワケです。
LINKエラーコードを非表示、表示切り替える設定方法!.htaccessの設定を優先させるphp.ini設定
編集方法は、エックスサーバーでしたらサーバーの管理画面で編集できます。管理画面で編集できない場合、ファイルをダウンロードして書き換えてください。
.htaccessファイルを編集後500エラーが出る原因、コメント編
.htaccessファイルは、おかしな文字列が入るとすぐに500 Internal Server Errorが出ます。元々ある記載は下記の通り。
# 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
例えば、コードをコピーペーストした際、おかしな文字列が入ったことに気付かず更新するなど。
6
7
8
9
10
11
# 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
灰色部分以外のピンクの数字が入ると、500エラーがでます。その他、エラーが出るのは下記。
- fえうt
- あ
- 9
全てコメント扱いになっていなければエラー!
- BEGIN WordPress
- 初めの# BEGIN WordPress :#があればコメントとして扱う
- # が抜けただけで、500エラーが出る
- おかしな文字列が入ってないか
- コメント部分に半角#が抜けてないかチェックしてください。
(FTPソフトなどで)ファイル転送時、文字コードが原因
.htaccessファイルの文字コードは、UTF-8に指定し転送すれば500 Internal Server Errorがでます。例えばWindowsのメモ帳などで、UTF-8を指定した場合。
.htaccessで404 File Not Foundが出る原因と解決法
>アクセスしようとしたページは見つかりませんでした。
404 File Not Found
このエラーは、指定したページが見つからなかったことを意味します。
以下のような原因が考えられます。
アクセスしようとしたファイルが存在しない(ファイルの設置箇所を誤っている)。
URLアドレスが間違っている。
引用元:エックスサーバーの404 File Not Found画面
エラー画面にも書かれているように、”アクセスしようとしたファイルが存在しない“のが原因でエラーが出ました。
- 詳細な原因は、WordPressのデフォルトであるリライトエンジンをアップしてない事
サーバー移行テストの中で、データベースがある状態でWordPress本体ファイルをごっそり入れ替えをして、.htaccessを設定する前にブログを開くと404 File Not Foundがでます。
またプラグインなどの設定によっても、404 File Not Foundがでます。順番にチェックしてくださいね。
管理画面にも入れない404エラー!プラグインの設定編
例えばプラグインなどで管理画面へ入ること・閲覧できる人をIP制限をしてるとき、.htaccessファイルにコードが入ります。
IPアドレスが指定されたものと違った場合は、404エラーを出す設定にしていると、エラーが出てログインページにも入れません。
.htaccessファイルにIPアドレスを追加するか、プラグインを一旦切るかなど対処すればログイン画面に入れますよ!詳しくは下記をどうぞ。
LINKセキュリティ対策!SiteGuard WP Pluginの設定と注意事項・WAF対策
.htaccessにWordPressのデフォルト# BEGIN WordPressが書いてない
WordPressは、.htaccessファイルで書き換えの記載をがないと、サーバーは表示しようにも該当のファイルが見けられず困った挙句、404 File Not Foundを出してます。
下記コードは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
このコードは持っているエディタにでもコピーしてください。後でサーバーに保存するので。
『トップページは表示されても、記事は表示されない。』
実験した結果
トップページは表示され、記事に飛べば『サーバーの404エラー画面』が表示されたので。
※FTPでルート直下.htaccessに存在して、同じディレクトリ内にサイトを構築している場合『サブディレクトリ・(サーバーによっては)サブドメイン』は無くても上層部にある.htaccessが反映されるはずだから、エラーにならない可能性も?
このindex.phpを見ると、色んなトコロから色んな事が書いたファイルを読み込んでるので、該当ファイルを調べたら詳細が分かりそうです。
この内容をコピペするから.htaccessファイルを置く位置(ディレクトリ)が大事です。TOPページはブログを置いている場所によって違うので。パーマリンク・URLのパスと関係。
※エックスサーバーやロリポップのようにサーバーがApacheを使っているのが前提です。使ってるはずだけど、心配な場合はご確認ください。
下記リンク先から、サーバー名を入れたら使っているのが分かります。
LINK検索キーワードサーバーの仕様 Apache|Google検索にて
サーバーが使ってない場合はPHPで書くことも可能ですけど、個人的にやったことがないです。検索すればあるかも知れません。
.htaccessファイルをコピペする場所(ディレクトリ)はどこ?
このコードをコピペ.htaccessファイルするには、WordPressの入っているディレクトリに置かないと意味がない内容です。独自ドメインやサブドメイン、サーバーによってはサブディレクトリで運営している場合もパスが変わってきます。
置く場所はブログが入っているフォルダ内にあるwp-adminフォルダ・wp-contentフォルダ・wp-config.phpファイルがある階層(移動などしていないデフォルトの場合)。
これらのwp-adminフォルダなどはブログ毎にあって、該当ブログ内フォルダに.htaccessを置くのがポイント!

WordPressのファイル群、ココの階層に.htaccessを置く
下記のピンク色で書いたフォルダ内に設置してください。
独自ドメイン:domain.comの場合
- エックスサーバーなら、/domain.com/public_html/.htaccess
- ロリポップなら、/domain.com/.htaccess
サブドメイン:sub.domain.comの場合
- エックスサーバーなら、/domain.com/public_html/sub/.htaccess
- ロリポップなら、/sub/.htaccess
サブディレクトリ:domain.com/betuの場合
- エックスサーバーなら、/domain.com/public_html/betu/.htaccess
- ロリポップなら、/domain.com/betu/.htaccess
このようにサーバーによって、WordPressの本体ファイルが置いているディレクトリ(階層)が違うので、該当ブログフォルダを開いた1つ下の階層(ディレクトリ)に入れることが重要です。
.htaccessの文字コードは注意が必要!
サーバーにあるWeb上のFTPロリポップFTPやエックスサーバーのWebFTPで編集する場合は無難ですが、編集を繰り返していたら、文字コードがたまにおかしくなる場合があります。
ロリポップで文字コードがASCIIに変わって日本語が文字化けしたり、文字コードをUTF-8にするとプログラムが処理できず、500 Internal Server Errorが100%出ます。
サーバーからダウンロードしたものを編集保存する時、文字コードをチェックしてください。
UTF-8bomなし(N)に設定した場合は問題ありません。その他文字SHIFT-JISでも使用できるけど、文字コードの扱いは大事なファイルともいえます。
LINKWordPressのUTF-8Nbomとは!文字コード・改行コードについて
.htaccessファイルの作成方法
WordPressファイルの入れ替えをしたりで、.htaccessファイルのバックアップがない場合アップする方法も説明しておきますね。
レンタルサーバーに.htaccessの項目があるなら、そこから入った方が良いです。文字コードが面倒なので、エックスサーバーなら、管理画面にあるのでチェックしてください。
またその他のリダイレクトの記載も参考程度にどうぞ。
LINKエックスサーバーで新規WordPressを導入後、サーバーと管理画面でする設定
ロリポップはサーバーFTPからコードを追記してください。
LINKロリポップFTP!ファイル編集やアップロード・ダウンロード・ファイル転送ができて便利な使い方
テキストエディタを使うならTeraPadが便利です。お手持ちのテキストエディタを開きコードをコピペしたものから導入していきます。
- 名前を付けて保存するときにチェックすること。
- 名前は.htaccess
- 文字コードがUFF-8なら500エラーが出るので変更して保存。
- 編集した.htaccessファイルを右クリック
- プロパティを見る
- ファイルの種類が、HTACCESSファイル (.htaccess)となっていれば、OK。
Windowsのメモ帳で新規作成・編集した場合、
- 保存するコードは、ANSIと言う文字コード。
- 保存したファイルの種類はファイルなど
- ファイル名はhtaccessになっているはず。
FTPソフトでアップする前にFTPソフト内でファイル名を変更します。
FTPソフトを開くと、PC側である左側にさっき作ったファイルhtaccess.txtファイルがあるので、名前の変更をしてください。
- .htaccess
再度その.htaccessファイルをプロパティから見たら
- ファイルの種類が、HTACCESSファイル (.htaccess)
- ファイル名は.htaccessに変更されている。
これで後は、ファイルをアップするだでOK!
- FTPソフト右側にある上述のディレクトリ(階層)に合わせる
- PC側であるFTPソフト左側の.htaccessファイルを右クリックしてアップロード!
- 上書き
- ブログの開いて更新ボタンを押すと500エラーが解除されている!
Windowsのメモ帳の場合、FTPソフトが文字コードを自動で選んでSHIFT-JISでアップされるので、日本語も文字化けしてません。
サーバーのFTPで更新していると、たまに文字コードがなぜか変更されてアスキーになり、文字化けします。アップしたら、バックアップをとって、バックアップフォルダにでも入れておくと、便利ですよ^^
その他、サーバー移行・WordPressファイル入れ替えでエラーがでる原因紹介
http 500エラーは場合によって、このページは機能しません。などになります。
データベース確立エラーと表示される、データベースでのエラーや、サーバーにブログが入ってませんなど、トップページがエラー画面だったり。
一部書ききれてないですけど、また時間みて下記リンク先に追記します。
LINKサーバー移行・ファイルの入れ替えでブログが表示されない原因・解決法
さいごに
http 500 Internal Server Errorは、WordPressを運営していたら、出くわす可能性もあります。このパターンのエラーは、.htaccessの存在って気付きにくいかも知れません。
記事を書くうえで、大事なのはバックアップだと思わされます。バックアップデータから復元が、鬼のように簡単です!
WordPressでのエラーは思わぬところで出るので、すぐに復元する方法はチェックするのもエラー回避の手だったり。
LINK簡易的バックアップ!初心者用WordPressファイル内説明と、5秒で復元する方法
あとは.htaccessなど編集したことあるファイルや、データベースの情報の入ったwp-config.php。普段のバックアップをとるフォルダを作って、入れておくと万が一のとき復元できます。
LINK初心者向け!WordPressのバックアップ方法、記事をエクスポートする手順
ブログの初期化テストをしていたら、偶然にこのような出来事がありました。どうすれば良いか、分からず不安な時間から、良かった~^^ となる事を願ってます!
それでは、かうたっくでした。
Comments