wordpress_redirect gibt verschiedene Header für HEAD- und GET-Requests zurück

Es gibt ein seltsames Verhalten, das mir bei einigen Tests auf einer unserer Websites aufgefallen ist. Wir überprüfen, ob der Benutzer nicht eingeloggt ist und führen einen wp_redirect in der header.php unseres header.php wie header.php :

 if(is_page('gestionar-mentorias')){ $post_id = get_the_ID(); if(!members_can_current_user_view_post( $post_id ) && !is_user_logged_in()){ wp_redirect( get_permalink( get_page_by_path( 'ingresa' ) ).'?redirect_to='.get_permalink( get_page_by_path( 'gestionar-mentorias' ) ) ); exit; } } ?> 

Dies scheint sowohl in unseren lokalen als auch in unseren Testumgebungen perfekt zu funktionieren. Die Produktionsstätte (die nicht unter unserer Kontrolle steht) kann jedoch manchmal nicht umgeleitet werden!

Ich habe versucht, das zu debuggen, als ich auf ein merkwürdiges Verhalten stieß. Wenn ich eine curl -I http://fedesoft.simianlab.com/gestionar-mentorias/ mache – ich curl -I http://fedesoft.simianlab.com/gestionar-mentorias/ , lautet die Antwort:

 HTTP/1.1 200 OK Date: Mon, 18 Apr 2016 23:47:00 GMT Server: Apache/2.2.15 (Red Hat) X-Pingback: http://fedesoft.simianlab.com/xmlrpc.php Link: ; rel="https://api.w.org/" Link: ; rel=shortlink Link: ; rel="https://github.com/WP-API/WP-API" Content-Type: text/html; charset=UTF-8 Vary: Accept-Encoding 

Ein curl -v http://fedesoft.simianlab.com/gestionar-mentorias/ liefert dieses Ergebnis:

 * Trying 52.3.201.45... * Connected to fedesoft.simianlab.com (52.3.201.45) port 80 (#0) > GET /gestionar-mentorias/ HTTP/1.1 > Host: fedesoft.simianlab.com > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 302 Found < Date: Mon, 18 Apr 2016 23:47:09 GMT < Server: Apache/2.2.15 (Red Hat) < X-Pingback: http://fedesoft.simianlab.com/xmlrpc.php < Link: ; rel="https://api.w.org/" < Link: ; rel=shortlink < Link: ; rel="https://github.com/WP-API/WP-API" < Location: http://fedesoft.simianlab.com/ingresa/?redirect_to=http://fedesoft.simianlab. com/gestionar-mentorias/ < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < * Connection #0 to host fedesoft.simianlab.com left intact 

Als ich die Manpage für cURL gelesen habe, habe ich gesehen, dass der Unterschied zwischen beiden Befehlen darin besteht, dass curl -I eine HEAD Anfrage ausführt, während curl -v eine normale GET Anfrage ausführt.

Gemäß der Spezifikation ist die HEAD-Methode “[…] identisch mit GET, außer dass der Server in der Antwort KEINEN Nachrichtentext zurückgeben darf. Die in den HTTP-Headern enthaltene Metainformation als Antwort auf eine HEAD-Anfrage SOLLTE identisch sein die Information, die als Antwort auf eine GET-Anfrage gesendet wird. ”

Meine Frage ist dann. Warum bekomme ich zwei verschiedene Antworten?

Solutions Collecting From Web of "wordpress_redirect gibt verschiedene Header für HEAD- und GET-Requests zurück"