Newsgroup: it.comp.os.linux.sys
Titolo: Robots che ignora redirect 302.

Ciao a tutti.
Ho un problema con un motore di ricerca (un certo internet Archive con
ip iniziante per 207, non ricordo il resto) che ignora i redirect 302.
Mi spiego. Ho un una pagina in php fatta pressapoco cosi:
<?
header("Location: /index.htm");
echo "Ciao, qui il motore NON deve arrivare";
echo "<a href='prova.htm'>Prova link</a>";
?>
Teoricamente il motore di ricerca dovrebbe essere subito rimandato alla
pagina /index.htm dal momento che apache gli mette un redirect 302
(Location: ).
Eppure nei log vedo che il robot carica la pagina e segue tutti i link
presenti al suo interno. ignorando quindi TUTTI i redirect di tutte le
altre pagine.
Facendo un test con telnet e caricando la pagina, mi viene visualizzato
l'output del redirect 302 (come è giusto che sia).
Come mai sto robots ignora i redirect? c'è un modo di simulare il
comportamento?
Ho praticamente tutte le amministrazioni basate su redirect di questo
tipo e non è proprio una bella cosa sapere che può essere facilmente
bypassato.

 
Questa č piů una domanda da php.
Header non č terminante (vorrei ben vedere).
Dopo aver finito di impostare gli header, devi invocare una die (per 
terminare la pagina) altrimenti PHP si comporta in questo modo:
invia gli header modificati
invia tutta la pagina (comunque)
Inserendo una die() dopo l'ultimo comando header, invece, il PHP:
invia gli header modificati
fine.
Prova in questo modo e prova a verificare che il robot segua la redirect 
(potrebbe essere plausibile, anche se errato, un comportamento del tipo, 
vedo la redirect, ma vedo anche i dati, quindi seguo i dati).
LP

 vedo la redirect, ma vedo anche i dati, quindi seguo i dati).
Ok, ma allora perchè con telnet vedo dirottato automaticamente senza
vedere una sola riga di dati?

 vedere una sola riga di dati?
uh ? ne sei certo ? :P
ciao,
--
oggei

 uh ? ne sei certo ? :P
Ma che lingua parla ?  ;-)

 Ma che lingua parla ?  ;-)
406 <g>
ciao,
--
oggei

 uh ? ne sei certo ? :P
cosi mi è sembrato.

 cosi mi č sembrato.
beh almeno non ne sei certo

 
Mi sembrerebbe strano.
che wget segua il 302 mi sembra logico.
che un client telnet (che di HTTP non sa [normalmente] nulla) interpreti 
i codici HTTP mi sembra abbastanza strano.
Con Telnet, tu avevi detto (e questo mi sembra verosimile oltre che 
corretto) di vedere il risultato 302.
Però, se ci fai caso, dovresti vedere anche la pagina che viene inviata 
dopo il comando
Location: xxxxxxxxxxxxx
LP
-- 

 vedere una sola riga di dati?
ROTFL!
mi pare strano eh
-- 
A: Because we read from top to bottom, left to right.
Q: Why should i start my reply below the quoted text?

 Location: xxxxxxxxxxxxx
Vedo la pagina indicata nel Location: anzichè quella da me richiesta.
Facendo cosi
telnet localhost 80
GET /provaredirect.php HTTP/1.0
l'output è quella della pagina del redirect e no quello di
provaredirect.php

 provaredirect.php
Però non ne sono tanto sicuro....devo fare dei controlli...

 Perň non ne sono tanto sicuro....devo fare dei controlli...
ti si sta dicendo in tre che e' una *cazzatona*, meglio se li fai si' :D
ciao,
--
oggei

 ti si sta dicendo in tre che e' una *cazzatona*, meglio se li fai si' :D
Infatti hanno ragione.
Il problema si verificava in quanto la pagina del redirect 302 non
esiste quindi dovrei vedere la pag di errore 404 (ed è giusto che sia
cosi diciamo)
Quindi facendo il test con telnet e caricando una pagina con al suo
interno un 302, vedevo si la pagina di errore (pensando fosse quella
generata dal redirect) ma perchè avevo scritto male il nome. :D
Son proprio un pirla.
GET 
http://www.sito.tld/provaredirect.php
 HTTP/1.0
da come output l'errore 404 ma perchè provaredirect.php non esiste e
no perchè la pagina dietro il redirect non esiste (come è giusto che
sia).
Insomma chiedo scusa a tutti.