サポート » 使い方全般 » 301リダイレクトができません

  • 解決済 kumakumasan

    (@kumakumasan)


    お世話になっております。

    旧サイト 初期ドメインを使用
    URL aaa.sakura.ne.jp
    新サイト サブドメインを使用
    URL bbb.○○○.com

    さくらレンタルサーバ使用です。
    旧サイトも新サイトもWordPressでの作成ですが、旧サイトは全て削除済みです。

    初期ドメインの直下の.htaccessで、トップページは301リダイレクトできましたが、他のページが上手くいきません。
    旧の aaa.○○○.ne.jp/?page_id=25/ を
    新の bbb.△△△△.com/support/ に誘導させたいのですが、
    bbb.△△△△.com/?page_id=25/ と、アドレスが混在してしまい、新サイトの画面が開き「ページが見つかりません」と表示されます。

    自分なりに調べてクエリ文字の存在がキーになっているとは思うのですが、色々試してみても変化がなかったり、サーバエラーになってしまいます。

    どうかお力を貸してください。
    よろしくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • クエリ文字列のあるアドレスでリダイレクト設定する時は %{QUERY_STRING} を使います。
    こんな感じでどうでしょう。

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^page_id=25/$
    RewriteRule ^$ https://bbb.△△△△.com/support/? [R=301,L]
    </IfModule>
    スレッド開始 kumakumasan

    (@kumakumasan)

    返信ありがとうございます。
    早速試してみましたが、残念ながら変化はありませんでした。
    ちなみに、今までで一番まともな現状(アドレスが混在し、新サイトで「ページが見つかりません」と表示)に使用した記述です。

    RewriteEngine on
    RewriteCond %{QUERY_STRING} (^|&)page_id=25(&|$)
    RewriteRule ^/?$ /bbb.△△△△.com/support/? [L,R=301]

    返信が承認待ち処理になってしまったのでブログの方に記述しました

    kumakumasanさんのコードでアドレスが混在するのは転送先アドレスがサイト内のディレクトリになっているからです。
    それと、念のための補足です。
    リダイレクト設定はブラウザにキャッシュされてしまうため、リダイレクトのフラグをR=302に変更した上でキャッシュを削除したりプライベートウィンドウ機能を使ったりして設定を試してください。

    スレッド開始 kumakumasan

    (@kumakumasan)

    返信ありがとうございます。
    なぜ承認待ち処理になっていたのか不明で、認知しておりませんでした。
    外部リンクまで貼っていただき、お手数をお掛けしてしまい申し訳ありません。

    キャッシュは都度削除しています。302でも試してみたのですが、最初の記述では変化がなく同じ状態になりました。
    なので、追記していただいた方法(リダイレクト先の.htaccessで再度リダイレクトの記述)を試してみたところ、無事、リダイレクトできました!!
    本当にありがとうございます。2週間の悩みがようやく解決できました!!

    1ページ試してリダイレクトできたので、他のページも同様に行い上手くいったのですが、ひとつだけリダイレクト先が固定ページではなく、投稿ページのものがありまして、そこだけがなぜか上手くいきません。
    ?page_id=659をhttps://bbb.△△△△.com/category/farm/にリダイレクトさせようとしたら、アドレスがhttps://bbb.△△△△.com/farm/となり、新サイトで「ページが見つかりません」の表示になってしまいます。
    よろしければアドバイスをいただけないでしょうか。
    よろしくお願いいたします。

    SPAM対策機能(リンクが多いとかコードの記述の仕方とかコードの中身とか)で自動的に承認待ち処理になってしまうことがあるのです。
    これはフォーラム管理権限の問題で、スレッド主であるkumakumasanさんが悪いわけではありません。

    内部のリダイレクトで解決できるのであれば直接記述するよりもプラグインRedirectionで管理した方が良いです。
    固定ページは自分でパーマリンク設定をする都合上リンク切れ問題は起きにくいですが、
    個別(投稿)ページはWordPressのパーマリンク設定をちょっと弄るだけでアドレスがコロコロ変わり、404エラーが発生しやすいですから。

    なお、投稿ページであればこの記述でいけると思います。

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^page_id=659$
    RewriteRule ^$ /?p=記事番号 [R=301,L]
    </IfModule>

    投稿ページは元々?p=xxxという動的urlで管理されています。
    それをWordPressのパーマリンク設定でリダイレクト処理を行い、category/farm/xxxという静的urlに変換しているわけです。
    ですので、記事が存在する動的urlにリダイレクトすればそこからはWordPressが自動変換してくれます。

    Redirectionを使うのであれば、ソース元に /?page_id=659 転送先に /?p=記事番号 を指定して保存するだけでリダイレクトできるようになるはずです。

    スレッド開始 kumakumasan

    (@kumakumasan)

    返信ありがとうございます。
    そういった対応がされているんですね。勉強不足でしたが安心しました。

    時間がないので今すぐにはできませんが、Redirectionを使用してみます。
    この度は大変お世話になりました。
    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「301リダイレクトができません」には新たに返信することはできません。