hatabowyou
@hatabowyou (はたぼう)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【MAMP環境】ローカルにWordPressを移行してトップページが404

解決したいこと

https://www.hoge.com の WordPress サイトを http://localhost/hoge/ に移設したく。

ローカルにWordPressを移行しましたがトップページが404になってしまいます。
パーマリンクも全て404です。
なお、.htaccess は以下のように書き直しました。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /hoge/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hoge/index.php [L]
</IfModule>

wp-config.php に以下の追記もしてます。

define ('WP_SITEURL', 'http://localhost/hoge/');
define ('WP_HOME', 'http://localhost/hoge/');

DB の option の siteurl と home も http://localhost/hoge/ に書き直してます。

WPの管理画面「設定」→「パーマリンク設定」も変更を保存しました。

思い当たることは全てしてますが解決しません(T_T)

どうぞお力添えよろしくお願いいたします。

0

6Answer

元のサイトからデータを移す前、http://localhost/hoge/でアクセスするWordPressは表示できていましたか?

1Like

Comments

  1. @hatabowyou

    Questioner

    元々入れてあったWordPressは表示されていました。データを入れ替えましたら404に(T_T)
    未だ原因究明中です。
    お返事ありがとうございます。

.htaccesswp-config.phpの書き換えはなぜ行ったのですか?

運用中のWPのドメインを変更して別環境に移行する場合、基本的にはDBの書き換えとDBの接続情報の修正で済むはずです。

.htaccessの書き換えが必要になるとすれば、WPがhttp://localhostにインストールされ、サイトURLをhttp://localhost/hogeに変更したい時かと思います。
WPがインストールされているのはhttp://localhostですか?
WordPress を専用ディレクトリに配置する – サポートフォーラム

また、wp-config.php のURL変更は、この記事を参考にしましたか?

この記事は、WPの管理画面『一般設定』で WordPress アドレス (URL) とサイトアドレス (URL) を間違って変更し、WPの管理画面に入れなくなった時の対応です。
今回やりたいことでは不要かと思います。
そもそも、http://localhost/hogeにWPをインストールしていれば、この2つのアドレスもhttp://localhost/hogeになっていると思います。
たとえ、ひとつ上の階層にインストールされていたとしても、管理画面からURLを変更できるのであれば不要かと思います。

.htaccesswp-config.phpを元に戻してチャレンジしてみてください。

1Like

Comments

  1. @hatabowyou

    Questioner

    なんと!とても詳しくありがとうございますm(__)m。
    お伝えいただいたとおりにやってみます。
    やってみましたらご報告いたします。
    ありがとうございます!
  2. @hatabowyou

    Questioner

    お待たせいたしました。
    上記に従って再度移行してみましたが、結果は同じでした。。。

    wp-config.php の中を更に見ると、AUTH_KEY・SECURE_AUTH_KEY・LOGGED_IN_KEY・NONCE_KEY・AUTH_SALT・SECURE_AUTH_SALT・LOGGED_IN_SALT・NONCE_SALT すべて定義されていますが、これのせいでしょうか?引き続き調べてみます。

    ありがとうございますm(__)m
  3. @hatabowyou

    Questioner

    こちらは私が編集したWordPressサイトではないのです。サーバを変えると404とするように、例えば header.php を編集している可能性があるのでしょうか?
    どうにも一筋縄ではいきません(T_T)

wp-config.php の中を更に見ると、AUTH_KEY・SECURE_AUTH_KEY・LOGGED_IN_KEY・NONCE_KEY・AUTH_SALT・SECURE_AUTH_SALT・LOGGED_IN_SALT・NONCE_SALT すべて定義されていますが、これのせいでしょうか?引き続き調べてみます。

普通にWPをインストールした場合、その辺りは何もしないことがほとんどですね。
まず、やりたいことと、やっていることを整理した方が良いのでは?

1Like

Comments

  1. @hatabowyou

    Questioner

    ありがとうございます!やはりそうですよね。。。

    実は先程解決いたしました。

    インストールされていたプラグイン、Custom Post Type UIとCustom Post Type Widgetsをアップデートして最新にしましたら、404エラーはトップページからもパーマリンクからも出力されなくなりました。

    実はhttps://www.hoge.comにあったWPはプラグインの更新を一切していない状態でしたので、ローカルでもしない状態にしておいたのですが、これが原因でした。

    .htaccess も wp-config.php も最初の質問に書いた通りの設定で、プラグインを更新したのみで解決となりました。

    takahashiさんありがとうございます!

やりたいことと、やっていることを整理した方が良いと思います。

公開中のURLとローカル環境でサイトトップのディレクトリが異なるのはなぜですか?
ローカル環境を作る場合はドメインはさておき、ディレクトリは同じにすると思います。
公開中のURL、たとえばhttps://www.example.comhttps://www.example.com/directoryNameにディレクトリを変更したいということなのでしょうか?

ディレクトリを変更するための確認でローカルに環境を作るのであれば、自分なら次の手順でやります。

  1. ローカルのディレクトリは本番同様http://localhost.example.comとして作る。
  2. 公開中のhttps://www.example.comからテーマやDBをエクスポートし、ローカル環境にインストールする。
  3. http://localhost.example.comhttp://localhost.example.com/directoryNameに変更する。

こちらは私が編集したWordPressサイトではないのです。サーバを変えると404とするように、例えば header.php を編集している可能性があるのでしょうか?

すみません。
質問の意味がわからなくて返答ができません…。

WPはURLを絶対パスで作るので、ドメインを変更すると404になります。
サーバを変えた時にURLが変わるのであれば、404になると思います。

<body <?php body_class();?> id="<?php echo $post->post_name;?>" itemschope="itemscope" itemtype="http://schema.org/WebPage">

なにか問題ありますか?
いずれのテンプレートかは不明ですが、出力結果にあるerror404 logged-in defaultは404の時のデザインが当たっているだけではないでしょうか?

itemschopeitemschopeはHTML5のマイクロデータ属性だと思います。

ひとまず、本番と同じディレクトリ構成でローカル環境を作ってみてはいかがでしょう?
またDBをエクスポートしての対応が難しければ、Wordpress標準のエクスポート・インポートの使用も良いと思います。

ここ数年WPを使っていないのでうろ覚えですが、DBからエクスポート・インポートを使わずに、この機能を使ってローカル環境を作ってもうまくいくはずです。

WordPressサイトのサーバー移行方法~WordPress標準のエクスポート・インポートを使う方法 | New Standard

1Like

Comments

  1. @hatabowyou

    Questioner

    本当にありがとうございますm(__)m

    WP移行について見るべきポイントがおかげでわかりまして大変助かりました!

    >ひとまず、本番と同じディレクトリ構成でローカル環境を作ってみてはいかがでしょう?

    仰るとおりローカル環境にて同じディレクトリでも構築してみました。
    こちらもデータを移行しただけでは404が出力され、カスタム投稿関係のプラグインを更新しましたら解決となりました。

    解決に至りましたので、クローズとさせていただきますm(__)m

    重ねてありがとうございました!

使用しているテーマの header.php のソースに

<body <?php body_class();?> id="<?php echo $post->post_name;?>" itemschope="itemscope" itemtype="http://schema.org/WebPage">

とありまして、これが全て

<body class="error404 logged-in  default" id="post-18204" itemschope="itemscope" itemtype="http://schema.org/WebPage">

と出力されていることがわかりました。。。

どこを辿ればいいのやらです^^;

0Like

Your answer might help someone💌