Die benutzerdefinierte Neuschreibungsregel dient dem Inhalt, gibt jedoch den Fehlercode 404 zurück

Ich habe ein Plugin, das eine benutzerdefinierte Rewrite-Regel einrichtet. Ich kann auf die kurze URL zugreifen und der Inhalt wird korrekt zurückgegeben, aber die HTTP-Antwort lautet 404, Page not found .

Bei der Suche im Internet scheint WordPress 404 zurückzugeben, weil es denkt, dass dies keine gültige WP-Seite ist (http://wordpress.org/support/topic/404-on-custom-non-wordpress-pages).

Gibt es eine empfohlene Lösung für dieses Problem? Wie kann ich WP dazu bringen, einen normalen Statuscode für eine umgeschriebene URL zurückzugeben?

 global $wp_rewrite; add_rewrite_rule('list-data$', '/wp-content/plugins/data-lister/list-data.php', 'top'); 

Vielen Dank! Kennzeichen

Solutions Collecting From Web of "Die benutzerdefinierte Neuschreibungsregel dient dem Inhalt, gibt jedoch den Fehlercode 404 zurück"

Dies ist seit einiger Zeit ein Problem im core, http://core.trac.wordpress.org/ticket/10722 .

Die einfachste Lösung besteht darin, einfach die Header auf ‘template_redirect’ zu überschreiben. Sie können sie ersetzen, solange Sie noch keine Ausgabe gestartet haben, die Sie zu diesem Zeitpunkt noch nicht haben sollten. Rufen Sie einfach status_header (200) auf;

Es werden auch keine Cache-Header gesendet, wenn die WP-class die 404-Header sendet. Daher möchten Sie diese wahrscheinlich durch Informationen ersetzen, die auf dem Inhalt basieren, den Sie von dieser PHP-Seite ziehen.

Fügen Sie dies zu functions.php hinzu:

 function fix_rewrite_404_header() { if( is_page(124) ) // or whatever condition you want to use { status_header(200); } } add_action( 'pre_get_posts', 'fix_rewrite_404_header'); 

Ich habe ‘template_redirect’ versucht (wie @prettyboymp vorgeschlagen), aber es hat nicht funktioniert.