web-dev-qa-db-ja.com

WordPressページの404ステータスコードをどのように抑制しますか?

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

404ページのページはうまく表示され、WordPressのタイトルタグから「ページが見つかりません」というテキストが削除されました。しかし、GooglebotとW3Cは404ヘッダを見ます。

それで、404ステータスを抑制するようにApacheに教えてもらえますか。そしてApacheはWordPressの404ヘッダを上書きするでしょうか?

それは理にかなっていますか?私は他にどのような情報や物事を見るべきですか?

WPコアファイルを変更しないように.htaccessのステータスコードを非表示にすることはできますか?

12
markratledge

あなたのページにカスタムの書き換えを追加することもできます。あるいは他のページをラップするテンプレートファイルの一番上にheader('HTTP/1.1 200 OK');を出力するだけです。

11
Aaron Harun

WordPressは正しいステータスコードを返すための関数status_header()を提供します。

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

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

WordpressはPHPなので、どこから送信されているかを探します。

header("HTTP/1.0 404 Not Found");
2
Brendan Long

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);
0