WordPressページで404ステータスコードを抑制する方法


13

別のデータベースから取得したページを含むWordPressサイトを持っています。問題は、これらの他のページが404ステータスコードを返すことです。(WordPressの投稿/ページは問題ありません。)

404'edページは正常に表示され、WordPressのタイトルタグから「Page not Found」テキストを削除しました。ただし、GooglebotとW3Cには404ヘッダーが表示されます。

だから:わあ、Apacheに404ステータスを抑制するように言うのですか?また、ApacheはWordPressの404ヘッダーを上書きしますか?

それは理にかなっていますか?他にどんな情報やものを見るべきですか?

WPコアファイルを変更しないように、.htaccessのステータスコードを抑制できますか?

回答:


11

カスタムの書き換えをページに追加できます。または、他のページをラップするテンプレートファイルの上部に出力しますheader('HTTP/1.1 200 OK');


2
.htaccessを使用するのではなく、WP以外のphpページテンプレートのみを修正するための大きな修正。ありがとう!
-markratledge

これには組み込み関数があります:status_header(200);
guidod

5

WordPressには、status_header()正しいステータスコードを返す機能があります。

WordPressテンプレート/関数内でこの関数を呼び出すことができます:

// Will return http status header "200 OK"
status_header(200);

2

WordpressはPHPなので、次のような送信先を探します。

header("HTTP/1.0 404 Not Found");

誤ってあなたを支持しましたが、変更しました。WPコアファイルを変更したくないです。
-markratledge

0

pre_handle_404フック(v4.5.0で追加)をご覧くださいhttps ://developer.wordpress.org/reference/hooks/pre_handle_404/

// add to your functions.php
add_filter('pre_handle_404', function($preempt, $wp_query) {
    global $wp;
    $customPages = ['custom-1','custom-2','custom-3'];

    if (in_array($wp->request, $customPages)) {
      $preempt = true;
    }

    return $preempt;
}, 10, 2);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.