• Moderatore

    Nuovi messaggi e status code 301

    Buondì,
    ho notato che alcuni forum vb, quando eseguono la query "nuovi messaggi", aka "do=getnew", rispondono con uno status code 302 e poi reindirizzano verso una pagina contenente i risultati.

    Ad ogni richiesta di "nuovi messaggi", visto il 302, il browser riesegue la richiesta "do=getnew" presso il server, se nulla è cambiato ritorna la stessa pagina di prima.

    Fin qui tutto bene, se non che alcuni forum mi ritornano 301, impedendo di fatto al browser di richiedere "do=getnew", che si limita a fare quello che gli è stato detto, ovvero richiama la pagina a cui era stato reindirizzato.

    Lasciando cadere il discorso di cambiare il browser, qual'è la modifica da apportare a vb perchè ad una richiesta "do=getnew" risponda 302 (come il forum GT) e non 301?

    Ringrazio :figo2:


  • Super User

    Ciao. 🙂

    Non credo di aver capito bene... Però la domanda nasce spontanea. Quando sposti i topic lasci il redirezionamento? Con quello viene spostato tutto. 🙂


  • Moderatore

    In pratica, da quello che ho capito, è una funzione interna di VB.
    Facendo search.php?do=getnew il sistema automaticamente risponde con un redirect 301 verso search.php?searchid=XXXXX.
    (lo si può guardare con live http headers)
    Alcuni forum, direi tutti, anziché lo status 301 inviano lo status 302 (ad esempio forumgt), quindi suppongo sia qualche cosa da modificare nel codice (vBulletin Versione 3.5.6), ma non trovo nulla in rete se non discussioni di utenti che brontolano e di admin che dicono di aver cambiato lo status code a 302.

    La domanda è, come si fa?:o


  • Super User

    Intendi la scritta

    Spiacenti, non ci sono discussioni da visualizzare.

    ?


  • Moderatore

    Provo a dettagliare:

    GET /search.php?do=getnew HTTP/1.1
    Host: NOMEHOST
    User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; it; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 GTB6
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
    Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://NOMEHOST/

    HTTP/1.1 301 Moved Permanently
    Date: Wed, 14 Apr 2010 12:03:20 GMT
    Server: Apache/2.0.46 (Red Hat)
    Accept-Ranges: bytes
    X-Powered-By: PHP/4.3.2
    Expires: 0
    Cache-Control: private, post-check=0, pre-check=0, max-age=0
    Pragma: no-cache
    Location: http://NOMEHOST/search.php?searchid=882599
    Content-Length: 0
    Connection: close
    Content-Type: text/html; charset=UTF-8

    Questo è il processo della GETNEW, come si vede risponde un 301 verso un'altra pagina. Io vorrei sostituire questo 301 con il 302.

    Spero sia più chiaro.
    (se si guarda con live http headers il forum GT, di vede il 302 al posto del 301).


  • Super User

    Sinceramente non ho capito. Vediamo se karapoto sa come fare. 😄


  • Moderatore

    Provo a rispiegare empiricamene.
    Apro un browser su un forum vb, ad esempio questo :yuppi:
    Mi loggo e clicco sul pulsante "Nuovi messaggi" che chiama questa pagina "search.php?do=getnew".
    La risposta del server, ovviamente legata al funzione di vbullettin è la risposta che vedi loggata sopra, ovvero risponde così:

    La pagina che cerchi è 301, spostata permanentemente a "search.php?searchid=882599"

    A quel punto il browser richiede la pagina "search.php?searchid=882599" che viene visualizzata.

    Magari non ti eri mai accorto di questo "funzionamento".

    Ora il mio problema è capire com'è possibile che questo forum (e quasi tutti gli altri forum) risponda un 302, ovvero spostato temporaneamente alle richieste verso getnew, mentre il mio risponde 301.

    Non sono pagine che sposto io, ma è proprio l'iter di generazione della lista "nuovi messaggi".


  • Super User

    mmm.... Vediamo un pò.

    Quando sposto un topic lascio sempre la voce, durante lo spostamento, su "Lascia un collegamento a questo topic" in modo da far spostare chi clicca in una sezione X, nella sezione Y in cui si trova il topic.
    Forse intendi quelli?