サポート » 使い方全般 » 固定ページのURLについて

  • お世話になっております、表題の件で一点困っていることがございます。

    固定ページのURLを投稿ページにて
    AAA.jp/BBB と編集して運用しています。

    こちらのページに
    AAA.jp/?page_id=xxxx    (※ xは数字)

    と入力すると404エラーではなく、
    301リダイレクトがかかり、
    AAA.jp/BBB に飛んでしまいます。

    こちらを404エラーが表示されるように変更をしたいのですが
    なにか手がかりなどわかる方おられますでしょうか。

    なお、
    プラグインとしてCustom Permalinksを利用しており、
    パーマリンクはカスタム構造で
    /%category%/%year%%monthnum%%day%%hour%%minute%%second%/ 
    となっています。
    301リダイレクトを発生させるようなプラグインを利用していません。

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

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    WordPressには、過去のスラッグや、デフォルトパーマリンク、スラッシュの有無を正規化するためのリダイレクト機能が備わっています。

    この機能は、template_redirect フックで実行される、redirect_canonical 関数が行っています。
    リダイレクト自体を止めるのであれば、このフックを外してしまえばいいのですが、そうなると、デフォルトパーマリンクで、固定ページが表示されてしまうことになります。

    404エラーとして表示するには、

    1. redirect_canonical フィルターにフックする
    2. リダイレクト先URLと、リクエストURLを比較して、異なっていた場合は、リクエストURLを返す
    3. その際、status_header( 404 ); で、レスポンスコードを404にすると共に、$wp_query->is_404 = true; として、404扱いにする

    という手順が必要になります。

    トピック投稿者 tkj_tkj

    (@tkj_tkj)

    ご回答ありがとうございます。

    redirect_canonical フィルターにフックする
    リダイレクト先URLと、リクエストURLを比較して、異なっていた場合は、リクエストURLを返す
    その際、status_header( 404 ); で、レスポンスコードを404にすると共に、$wp_query->is_404 = true; として、404扱いにする

    このあたり具体的にどのファイルをどう変更すればいいのか、
    わたしの知識では追いついていませんが、
    とりあえず、コアファイルを触らないと対応できないそうにない、ということですね。。。

    もう少し調べてみます。
    ありがとうございます。

    モデレーター gatespace

    (@gatespace)

    とりあえず、コアファイルを触らないと対応できないそうにない、ということですね。。。

    jim912さんが書いてる方法がコアファイルを触らないでやる方法です。
    「フィルターにフックする」とかを検索してみてください

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「固定ページのURLについて」には新たに返信することはできません。