サポート » 使い方全般 » サイトURL変更後、リンク先が404 Not Foundとなる

  • 解決済 tuesone

    (@tuesone)


    こんにちは。

    現在、自作テーマを使用してエックスサーバー上でホームページを公開しております。
    この度、公開するサーバーをエックスサーバーからさくらVPSに変更するため、WordPressの移行作業を行いました。

    また、移行作業後、こちら( http://wpdocs.sourceforge.jp/Giving_WordPress_Its_Own_Directory )の手順に従い、サイトのURLをhttp://example/wp から、http://example に変更する作業も行いました。

    しかし、作業後、さくらの方で動きを確認してみると、トップページはしっかりと表示されるのですが、その他のリンク(投稿や固定ページなど)が

    Not Found
    The requested URL /○○○ was not found on this server.

    と表示されてしまい、ページを閲覧することができません。
    URLは、http://example で表示されています。

    さくら上でURLの変更作業を行う前は(http://example/wp/ の時は)、どのページも表示できていました。

    試しに、このサイトURLの変更作業をエックスサーバー上で公開しているホームページの方で行ったところ、うまくいきました。
    そのファイル群のまま、もう一度移行作業を行ってみたのですが、さくらでは、やはりうまくいきません。

    フォーラム、ブログ等を当たってみましたが、これぞという情報を手に入れることができなかったため、こちらで質問させていただきます。

    以下、WordPressの移行作業を行う際に、私が行った作業です。
    exampleはエックスサーバーでのURL、example2はさくらでのURLと捉えてください。

    1. エックスサーバーから、WP関連ファイルを全てダウンロードし、さくらへアップロードした。(この際、サイトURL変更作業で生成したindex.phpや.htaccessも適切な場所に配置)

    2. エックスサーバーのWP関連のデータベースをエクスポートし、さくらのデータベースへインポートした。

    3. wp-config.phpの、DBネーム、ユーザー、パスワード、ホスト名をさくらに合わせて変更した。

    4. searchreplacedb2.php を利用して、DBの旧URLを新URLに書き換えた。
    (http://example/wphttp://example2/wp)

    5. WordPress管理画面の一般設定で、サイトアドレスを書き換えた
    (http://examplehttp://example2)

    6. パーマリンクの設定を更新した。

    以上です。

    プラグインを停止、テーマをデフォルトものに変更、キャッシュのクリア、いずれも試しましたが解決しませんでした。

    原因に何か心当たりのある方がいらっしゃれば、アドバイスをいただけると嬉しいです。
    何卒、よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • .htaccessがWebサーバーによって書き込み可能になってますか?

    stranger-jpさん

    アドバイスいただきありがとうございます。

    .htaccess のパーミッションを666に設定したときに、上記6の作業を完了することができましたので(パーマリンクの更新を行った際に、『パーマリンク構造を更新しました』という記述がWP管理画面で確認できた)、この状態は、.htaccessがWebサーバーによって書き込み可の状態にあると考えています。

    私が知識不足で、言葉の意味の捉え方を間違えているかもしれません。
    もしもこの認識が誤っておりましたら、お手数ですが、またご指摘をお願いいたします。

    追記

    一度WPのファイル群、DBを削除しました。
    そして、さくらVPSにWordPressをインストールし直し、デフォルトのテーマを利用して上記URLの変更作業を行いました。

    しかし、やはりどのテーマでもページが表示されませんでした。
    トップページは真っ白、投稿や固定ページは404で表示されます。
    ページのURLは望み通りのものになっているのですが…

    WordPressではなくさくらVPSの方の設定に問題があるのでしょうか…?

    mod_rewriteが有効かどうか、.htaccessが使える状態かどうか確認してください。

    @tuesone さん

    httpd.conf(OSによって名前が異なります) の AllowOverride の値もチェックが必要な気がします。Nginx じゃないですよね?

    stranger-jp さん, kjmtsh さん

    アドバイス、本当に心強いです。ありがとうございます。

    さて、mod_rewriteの件ですが、httpd.confに、

    ・#LoadModule rewrite_module modules/mod_rewrite.so
    のコメントアウトを解除

    ・httpd.conf の最後の行に、
    <Directory “/var/www/html/wp”>
    AllowOverride All
    </Directory>
    を追加

    以上2つの操作を行っております。

    これにより、mod_rewriteが有効な状態にあると認識しております。

    .htaccessが有効かどうかについてですが、ただいま調べたところ、httpd.conf の該当箇所が、

    AllowOverride None

    となっておりました。
    ありがとうございます。

    AllowOverride All

    に変更し、.htaccess が有効になったことも確認しました。(top.html を作り、デフォルトファイルとしてみた)

    しかし、それでもページが表示されてくれません。
    的確なアドバイスをいただいたにも関わらず、申し訳ないです。

    また、恥ずかしながら、Nginxという単語を今初めて知りました。
    調べてみると、Webサーバーのようですね。
    Webサーバーは現在、Apacheを利用しております。

    .htaccess は
    /var/www/html
    だけでなく
    /var/www/html/wp
    の中にも存在するため、こちらの.htaccessも有効にする必要があるのでしょうか?

    こちらの.htaccessも有効にする必要があるのでしょうか?

    今は放っておいてかまいません。情報を集めないといけないので、次にやるべきことは、OS が RPM 系の Linux だ仮定して、

    $ sudo /etc/rc.d/init.d/httpd restart

    次に、ブラウザで、

    http://example2/

    にアクセスし、

    $ sudo tail -20 /var/log/apache2/access.log | less
    $ sudo tail -20 /var/log/apache2/error.log | less

    を実行して、ログのチェックをしてください(ディレクトリ名は違うかもしれません)。特にエラーログは1行ずつ丁寧に読んでください。

    kjmtshさん

    ただいまエラーログを確認しましたところ、URL移行作業の際にコピーした index.php に問題があったことがわかりました。
    該当箇所を修正したところ、無事に新URLでページを確認することができました。

    error.log で、どんな問題が起こっているか確認できることを、今回の助言で初めて知りました。

    本当にありがとうございました。

    stranger-jpさん、kjmtshさんのおかげで、無事に問題を解決することができました。

    今回の問題を解決するために行った作業は、

    ・httpd.conf を編集して.htaccess を有効にした。
    ・エラーログを確認し、指定された箇所を修正した。

    の2点でした。
    いずれも、お二人の助言が無ければ気付けなかった作業です。

    解決できてほっとしている反面、お二人に多くの助言をいただいたにも関わらず、最後の問題がパス指定のミスであったことを非常に情けなく感じております。

    今後再び問題が発生したときは、必ずエラーログを確認するということを、肝に銘じておきます。

    stranger-jpさん、kjmtshさん、本当に、ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「サイトURL変更後、リンク先が404 Not Foundとなる」には新たに返信することはできません。