Comment supprimer un code d'état 404 dans une page WordPress?

13

J'ai un site WordPress qui comprend des pages extraites d'une base de données différente. Le problème est que ces autres pages renvoient un code d'état 404. (Les messages / pages WordPress sont très bien.)

Les pages 404 s'affichent correctement et j'ai supprimé le texte "Page non trouvée" de la balise de titre dans WordPress. Mais Googlebot et W3C voient l'en-tête 404.

Alors: wow dit-on à Apache de supprimer un statut 404? Et Apache remplacera-t-il l'en-tête 404 de WordPress?

Cela a-t-il du sens? Quelles autres informations et choses dois-je consulter?

Puis-je supprimer le code d'état dans .htaccess pour ne pas modifier les fichiers principaux WP?

Markratledge
la source

Réponses:

11

Vous pouvez soit ajouter des réécritures personnalisées à vos pages. Ou en haut des fichiers de modèle qui enveloppent vos autres pages juste en sortie header('HTTP/1.1 200 OK');.

Aaron Harun
la source
2
Excellent correctif plutôt que d'utiliser .htaccess et pour corriger uniquement les modèles de page php non WP. Merci!
markratledge
Il existe une fonction intégrée pour cela: status_header (200);
guidod
5

WordPress offre la fonction status_header()pour renvoyer le code d'état correct.

Vous pouvez appeler cette fonction dans votre modèle / fonction WordPress:

// Will return http status header "200 OK"
status_header(200);
Philipp
la source
2

Wordpress est PHP, alors cherchez où il envoie quelque chose comme:

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

la source
Vous a accidentellement rétrogradé, mais l'a changé. Je préfère ne pas modifier les fichiers de base WP.
markratledge
0

Jetez un œil au crochet pre_handle_404 (ajouté dans la version 4.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);
Jonathan MacDonald
la source