質問者ごんごん様・リス様から「WordPressのURL設定を変更したら404エラーになってしまった」というご質問を頂きました。
一般設定「WordPressアドレス」「サイトアドレス」はサイトの表示やシステムに関わる重要な部分で、変更するとログインできなくなったり、ページが表示されなくなったりします。
データベース(DB)やwp-config.phpを変更して修正する方法をご紹介したいと思います。
目次
WordPressのページが404エラーになってしまった
素人の質問で失礼します。
ワードプレスでブログを書いていたのですが以下の流れで作業したら404エラーになってしまいました。
・エックスサーバーでワードプレスブログ開始(SSLの設定をしたつもり)
・数週間後、サイトがSSL適応されていないことに気づく
・エックスサーバーを確認するとSSLの設定はされている模様
・ワードプレスの設定→一般からURLを「https://」に変更
と作業したところ、404エラーに・・・
基本的な仕組みがわかっていなくて、何をすれば復旧できるのか、どんな状態になってるのかさっぱりわかりません。
復旧させる手順を教えていただけないでしょうか。宜しくお願いします。
WordPressのページが404エラーになってしまう原因と解決方法
>ごんごん様
コメントありがとうございます。
サイトも拝見しましたが、httpsに変更する際、「サイトアドレス」を変更されましたでしょうか。(/wp/を消すなど)
WordPressアドレスを変えるとログインできなくなりますが、
https:// XXXXXXXX-nel.com/wp/wp-login.php
でログイン画面には行くことができました。
https:// XXXXXXXX-nel.com/wp/
ではTOPページも表示されているようです。
ただ、
https:// XXXXXXXX-nel.com/
ではTOPページが表示されていないようです。
これが意図したものでない場合は、サイトアドレスの変更について調べる必要があると思います。
などのページが参考になるかと思います。
サイトアドレスが変更となった場合
例えばサイトアドレスの/wp/を消して保存しても、管理画面にはアクセスできます。
しかし、TOPページや下層ページへのアクセス・挙動がおかしくなります。
これにを解消するには、/wp/の中にあった.htaccessとindex.phpをルートディレクトリ(ドメインが割り当てられた場所)に”コピー”し、
index.php内の記述を
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
から
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
に変更する必要があります。
さらに、管理画面から設定 > パーマリンク設定 で、なにもせずに保存を行い、.htaccessを更新する必要があります。
(このようにwpフォルダと.htaccess index.phpが同階層にある状態)
インストールし直すという方法も
あとは、開設したばかりのサイトであれば、「インストールし直す」も一つの手段です。悩んだり調べたりするよりも早いことがあり、僕は何回もやりました(笑)
WordPressアドレスを変更する2つの方法
質問者リスさんから、WordPressアドレスを変更してしまった場合の対処について追加のご質問を頂きました。
質問者 リス様
「WordPressアドレス」と「サイトアドレス」の最後の部分の/WP/を削除したのが原因です。
それからは、wordpress 管理画面にログインできなくなり、ごんごん様と同じエラーメッセージが出るようになりました。
これを直すために、WordPressアドレスと(サイトアドレス)が変更となった場合の解消方法を教えてください。
(頂いたコメントより抜粋)
>リス様
コメントありがとうございます!
WordPressアドレスは変更するとログイン・閲覧ができなくなってしまいますからね・・・
WordPressは、データベース(頭)とファイル(WordPressフォルダ・体)で成り立っています。(イメージですが)
WordPressアドレスを変更することは、体をすげ変えてしまうような状態です。頭が体を探すことができない状態で、”金縛り”みたいな状態でしょうか(笑)
記事の引っ越しもあり、最初からやり直すのは大変そうですね。以下の方法も試してみてください。
2つの方法をご紹介したいと思います。
ひとつはwp-config.phpに記述を追加してWordPressアドレスを上書きする方法、もうひとつはデータベース(DB)を直接編集する方法です。
wp-config.phpに記述を追加してWordPressアドレスを上書き
wp-config.phpに、以下の記述を追加します。場所は<?php の後などで問題ありませんでした。
define('WP_SITEURL','https://website-homepage.com/wp'); define('WP_HOME','https://website-homepage.com/');
define WP_SITEURL が WordPressアドレス
define WP_HOME が サイトアドレス
なのでちょっと紛らわしいです^^;
この方法を行うと、ログインなどはできるようになりますが、一般設定からURLを変更できなくなります。
そのため、記述は追加したままにしなくてはなりません。
”DBなどは変更したくないが、一時的にサイトのURLを変更したい”ときなどに用いられるのではないかなと思います。
たとえば、サーバーを移転してドメインのDNSを変更したが、一時的にサーバーの初期ドメインで動作だけを確認したい・・・
といったケースです。
データベース(DB)のWordPressアドレスを直接編集
こちらは、phpMyAdminなどでデータベースに直接アクセスする必要があります。
データベースのバックアップ(エクスポートなど)を行い、サイト外にコピーを保存してから行いましょう。
1.phpMyAdmin にログインする。(方法はサーバーによります)
WordPress のデータベースへのリンクをクリックすると、そのデータベース内のテーブル一覧が表示されます。
2.wp_options を探す
頭に共通してついている文字列はテーブル接頭辞(プレフィッスクなど)と言って、環境によって名称が異なるかもしれません。
wp_ はセキュリティ上良くないため、最近は簡単インストールでも自動でwp+英数文字_ になったりします。
wpXXXXX_options を探せば問題ないとおもいます。
「表示」アイコン(赤〇のとこです)をクリックするとwp_options テーブル内のフィールド一覧が表示されます。
この中で「siteurl」が一般設定のWordPressアドレスにあたります。
赤●部分のエンピツアイコンをクリックすると編集できるので新しい URL を入力し、「実行する」をクリックして保存しましょう。
一般設定 サイトアドレス を変更したい場合は、wp_options テーブルの「 home 」を同じように編集しましょう。
siteurlはすぐにあると思いますが、homeは次のページにあったりします。フィールド一覧の最下部にページ送りがあるので、他のページを探してみてください。
こちらはDBを直接編集するので、ログイン後に一般設定でまた変更できるようになっています。慣れていない場合はwp-config.phpを編集する方が安全かもしれません。
慎重に試してみてくださいね。
ご参考になれば幸いです。
大変厚かましいですが、質問を書かせてください。
私も、ごんごん様と同じエラーメッセージが出てしまい、
困っております。探して探して、やっとここにたどり着きました。
ありがとうございます。
レンタルサーバーに問い合わせして5日目ですが、まだ返事はありません。
初めて、WordPressを使ってます。FC2ブログからの移行を試みてますが、
まだ終了まではいってません。
FC2からのテキストをWP用に書き換えました。
FC2ブログからエクスポートした画像のアップロードと
テキストデーターのインポート、パーマリンク設定からURLの投稿名を英数字に直しました。
(記事が1500余りで大変でした。)
ここで、画像が表示されないことに気づき、
「WordPressアドレス」と「サイトアドレス」の最後の部分の/WP/を削除したのが原因です。
それからは、wordpress 管理画面にログインできなくなり、ごんごん様と同じエラーメッセージが出るようになりました。
長くなってすみません。
これを直すために、WordPressアドレスと(サイトアドレス)が変更となった場合の解消方法を教えてください。(サイドアドレスはわかりました。)
も一つの手段としての「インストールし直す」は、やってみようと思いますが、インポートしたテキストや画像、その他の設定はどうなるのでしょうか?初めからやり直さなければならないでしょうか?
大変申し訳ありませんが、教えてください。
よろしくお願いします。
>リス様
コメントありがとうございます!
1.wp-config.phpに記述を追加する方法
2.データベース(DB)を直接編集する方法
を追記しました。ご参考になれば幸いです。
お忙しいのに、早速アドバイスいただき、
ありがとうございました。
嬉しかったです。
頭が体を探しているという表現、
その通りです。笑
「データベース(DB)のWordPressアドレスを直接編集」
でやりました。
直りました。^^
大変ありがとうございました。
感謝感謝です。
厚かましいですが、もう一つ質問させてください。
まだ移行途中ですが、WordPressにテキストのインポートと
画像のアップが終わっているのに、プレビューでは文字は表示されますが、
画像が表示されません。(まだWebには載せてません。)
どこをチェックすればよいかを教えていただけるとありがたいです。
本当に厚かましくてすみませんです。
本当にありがとうございました。
>リス様
参考になったようでよかったです!
FC2ブログからの移行ということでしたね。手作業ですべてやられたようですが、
1.WordPressのメディアにアップロードしたのか
2.FTPでフォルダにアップロードしたのか
にもよるでしょう。
2の場合、ダッシュボード>メディア で画像を確認することはできなかったと思います。
ただ、どちらの場合も画像のパスさえ合っていれば画像は表示されるはずです。プレビューかどうかは関係なかったと思います。
”画像のパス・URLに直接アクセスした時に表示されるかどうか”
を確認してみてください。
何ページか見たところ、
example.com/wp-content/uploads/img/image194.gif
というパスを使われているようですが、画像のパスには/wp/も必要かと思います。(画像ファイルのパスには”WordPressアドレス”が必要です)
しかし、
example.com/wp/wp-content/uploads/img/image194.gif
にアクセスしても404になるんですよね。
imgというフォルダで合っているか。
imgの中にさらにフォルダが無いか。
など、確認してみましょう。
今のパス(に/wp/を追加したもの)だと、imgフォルダの直下に全ての画像があることになっています。
参考になれば幸いです。
root-013様
本当に、本当にありがとうございます。
昨日一日、原因を探してました。
そして、今朝原因がわかりました。
imgの中にさらにフォルダがありました。
(このフォルダーを探すのに時間がかかりました。笑)
FileZilla Clientの中で見れました。(初心者ですみません。)
FC2から画像をエクスポートした時、勝手にフォルダーが作られ、
100枚ずつ入っていました。
画像を一枚ずつ取り出して、もう一度imgフォルダーに入れ、
FileZilla ClientでWordPressにアップしました。
ところが、まだブログでは画像が表示されません。
前にも書きましたが、記事内の画像のURLを変更した時、
https://新ドメイン/wp-content/uploads/img/画像にしました。
ところが、WordPressの画像は、
https://新ドメイン/wp/wp-content/uploads/img/画像
なので、表示されないんですね。
本当にありがとうございました。
編集画面から、一つ一つ、/wp/を付け加えを行っております。
なかなか大変で、もう今日は途中でやめました。笑
WordPressの中の記事本文の画像URLを置換する方法の
アドバイス願えませんでしょうか?
毎回、厚かましく書いて申し訳ありません。
よろしくお願いします。
>リス様
パスの問題でしたか。参考になったようで何よりです。
”置換と言えば”というプラグインがあり、まだ書いたことが無かったので記事にしました。
WordPressのデータベース置換プラグイン Search Regex
エクセルやテキストエディタにも置換機能はあるので使ったことがあれば感覚は掴みやすいかもしれません。
手作業でいくつか/wp/に変更されたようですが、置換の際は一度全て揃えてからにした方が混乱が少ないかもしれません。
また、バックアップや記事エクスポートなど、現在のデータを保存しておくこともおすすめします。
厚かましいく何度も問い合わせをさせていただき、
ありがとうございます。
そして、毎回適切なご回答をいただき、感謝いたします。
ありがとうございました。
今回教えていただいた、Search Regexを早速実行しました。
1628個の置換ができました。
ただ、約38000個が残りました。
その後も、何度もNo limitで繰り返しましたが、
置換されることはありませんでした。
(時間をおいたりして、今朝までやってました。笑)
1628個置換されたことがうれしいです。
これからもコツコツと手作業をして行こうと思ってます。
本当に、ありがとうございました。
移行作業を完了して、一日でも早くアップあせたいと思ってます。
これからもよろしくお願いします。
ありがとうございました。
>リス様
解決したようでなによりです。
そこまでの数を一気に置換したことが無かったので・・・制限があるのですね。
こちらも勉強になりました。
また何かあればご質問ください。
初めまして。
今日、ワードプレスのサイトのドメインをXサーバーからXサーバー内で独自ドメインに変更をしたものです。
サイトは移行できたのですが、トップページは表示されるのですが下層ページが404エラーとなってしまいます。
解決策を探して、こちらのサイトにたどり着きました。
砂山
>砂山さま
コメントありがとうございます。
色々と状況をお聞かせいただきありがとうございます。
パーマリンク設定が実際どうなっているのか(どの設定が選択されているか)がわからなかったのでコメントは抜粋させて頂きました。
現在は大丈夫のようですが、解決したということで良いでしょうか?
ログインはできて、下層ページだけが404
こういった場合、かなりの割合で”パーマリンク設定の再保存”で解決します。
リニューアル後・URL変更後などは 設定 > パーマリンク設定 より、”なにもせず【変更を保存】”をしてみると良いでしょう。
またなにかありましたらご連絡ください!
早々にコメントのご返信をいただき、本当にありがとうございました。
おかげさまで下層ページまで表示できるようになりました。
原因は.htaccessファイルが移行後の独自ドメインサイト内に存在しなかったことのようです。
Xサーバーからはワードプレスの内容についてはフォローできないということで諦めていましたが、
下記のような返信がありました。
上記につきまして、当サポートからURL「http://sample.com/」へ
> >アクセスし、パーマリンクが正常に動作していないことを
> >確認いたしました。
> >
> >お客様のファイルの設置状況を確認いたしましたところ
> >WordPressのコンテンツが設置されている
> >「パス:/sample.com/public_html/」直下に「.htaccess」のファイルが
> >存在しておりませんでした。
> >
> >このため、パーマリンクが正常に動作していない状況でございます。
> >
> >
> >お手数ではございますが、「パス:/sample.com/public_html/wp/」配下に
> >設置されている「.htaccess」を「パス:/sample.com/public_html/」直下に
> >移動していただくか、もしくは『サーバーパネル > .htaccess編集』から
> >ドメイン「sample.com」の右側にある[選択する]から遷移したページの
> >「.htaccess編集」タブから何も入力せずに[.htaccessを編集する(確認)]→
> >[.htaccessを編集する(確定)]で「パス:/sample.com/public_html/」直下に
> >「.htaccess」ファイルが作成されますので、いずれかをお試しください。
> >
> >「.htaccess」ファイルの作成が完了いたしましたら、WordPressの
> >ダッシュボードから「設定 > パーマリンク設定」にて、「基本」や「日付と投稿名」など
> >元々選択していたものをお選びいただき、
> >画面下部の「変更を保存」をクリックして
> >動作状況に変化があるかどうかについてご確認ください。
> >
> >※ パーマリンクの設定を独自のものに変更されていた場合は
> > その設定を再度行ってください。
> >
> >
> >設定を確認するだけではなく、設定を改めて行うことで
> >FTPサーバー上の[.htaccess]ファイルに
> >パーマリンクの設定が書き込まれるのですが、このパーマリンクを
> >再設定することで問題が解決すると思われます。
この設定をして[.htaccess]ファイルを追加することができたのですが、まだ404エラーになり
困って問い合わせをさせていただきました。
自分なりに考えて、追加できた[.htaccess]ファイルの中身を確認したら空白の状態だったので
移行前の[.htaccess]ファイルの中身をコピーして貼り付けたら、解決できました。
独自ドメインに移行する手順には[.htaccess]ファイルはアップロードしないとのことだったので初心者にはまったく理解できないことですがとにかく解決できたことがよかったです。
https://www.xserver.ne.jp/support/faq/faq_service_hp_wp.php#08
ご報告しようと思いましたら、すでにお返事をいただいておりました。
本当に感謝申し上げます。
root-013さまのお心遣いに心から御礼申し上げます。
ありがとうございました。
>砂山さま
コメントありがとうございます。やはりhtaccessでしたか。
本来パーマリンク設定保存時に自動で書き換えられるのがhtaccessです。(パーマリンク設定の内容によってhtaccessの記述が変化するため)
下層が表示されない場合はパーマリンク設定から保存を行うことでhtaccessが上書きされ、表示されることがほとんどです。
ヘルプだけ見てもなぜhtaccessの保存が必要かは書かれていませんからね^^;
解決したようでなによりです!またなにかあればご連絡ください!
こんにちは。全く同じ現象に陥ってしまい、
泣く泣くこちらのHPに辿り着き、丁寧な解説通り
進めたら問題解決しました。
手順2のDB直接書き込みで出来ました。
WP初心者には本当に助かるサイトです。
引き続き勉強させていただきます。
本当にありがとございました。
>そうきょうさま
コメントありがとうございます。
参考にして頂けたようでなによりです!
また何かあればご相談下さい!