私は別のデータベースから取得したページを含むWordPressサイトを持っています。問題は、これらの他のページが404ステータスコードを返すことです。 (WordPressの投稿/ページは問題ありません。)
404ページのページはうまく表示され、WordPressのタイトルタグから「ページが見つかりません」というテキストが削除されました。しかし、GooglebotとW3Cは404ヘッダを見ます。
それで、404ステータスを抑制するようにApacheに教えてもらえますか。そしてApacheはWordPressの404ヘッダを上書きするでしょうか?
それは理にかなっていますか?私は他にどのような情報や物事を見るべきですか?
WPコアファイルを変更しないように.htaccessのステータスコードを非表示にすることはできますか?
あなたのページにカスタムの書き換えを追加することもできます。あるいは他のページをラップするテンプレートファイルの一番上にheader('HTTP/1.1 200 OK');
を出力するだけです。
WordPressは正しいステータスコードを返すための関数status_header()
を提供します。
あなたのWordPressテンプレート/関数の中でこの関数を呼び出すことができます:
// Will return http status header "200 OK"
status_header(200);
WordpressはPHPなので、どこから送信されているかを探します。
header("HTTP/1.0 404 Not Found");
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);