Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    invio header 404 e regola htaccess

    Ciao a tutti, la questione è la seguente

    ho una pagina nella docroot in cui forzo un header 404 in base alla valutazione di una variabile, del tipo
    codice:
    // Nessun Output prima...
    ...
    if ($variabile) {
        header("HTTP/1.0 404 Not Found");
    }
    ...
    nella stessa cartella ho un file .htaccess in cui ho queste regole
    codice:
    ...
    ErrorDocument 403 /page-forbidden.php
    ErrorDocument 404 /page-not-found.php
    ErrorDocument 500 /server-error.php
    ...
    Il risultato che mi aspetterei è che il browser fosse redirezionato sulla pagina /page-not-found.php. Invece ciò non succede

    Ora, il test sulla variabile dell'if dà sicuramente true e l'htaccess è a posto (se richiamo un file inesistente viene correttamente richiamato il file page-not-found.php)

    Sto dimenticando qualcosa? :master:

    Grazie a tutti
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  2. #2
    Non basta un header 404 per redirigere il browser.

    Potresti fare così:

    codice:
    if ($variabile) {
        header("HTTP/1.0 404 Not Found");
        header("Location: /page-not-found.php");
    }
    P.S. nell'header location usa un URL completo (http://www....)
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Grazie GM, però mi sembra strano che l'htaccess non intervenga in questo caso... ma in questo modo i motori di ricerca come si potrebbero/dovrebbero comportare?

    Ovvero, ignorano l'url (prima passo un header 404 not found) oppure mi indicizzano il file (la location)?

    Grazie per la velocità
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    Originariamente inviato da fcaldera
    Ovvero, ignorano l'url (prima passo un header 404 not found) oppure mi indicizzano il file (la location)?
    Sinceramente sono in difficoltà
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  5. #5
    comunque è colpa di apache se non va!!! prova nel forum di apache!!!!
    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se fosse un problema dell'htaccess non dovrebbe funzionare per niente, ma non è proprio questo il caso.

    In realtà la mancata redirezione avviene quando è forzata via codice, per cui o si può risolvere mediante altri header (che non siano delle location) o altre istruzioni php.

    Io sto usando un php 4.4.4 e apache 2.0.53 su Win (ovvero è lo xampp 1.5.5)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    è colpa di apache,
    perchè l'header PHP dice al server ERRORE 404,
    il server non elabora la richiesta perchè è bloccata (vedi httpd.conf)
    e quindi non va !!!!!!
    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  8. #8
    Originariamente inviato da fcaldera
    Grazie GM, però mi sembra strano che l'htaccess non intervenga in questo caso... ma in questo modo i motori di ricerca come si potrebbero/dovrebbero comportare?
    presumo come con un meta-tag di redirect ... dato che location reindirizza e che l'header pescato dai motori sarà il primo, ovvero il not-found ... not-found ? bye bye
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Originariamente inviato da fcaldera
    Grazie GM, però mi sembra strano che l'htaccess non intervenga in questo caso...
    non interviene perché ha già finito.

    Ad apache arriva una richiesta, la filtra con htaccess, lo script esiste? in questo caso sì, il tuo script php, gli passa il controllo e ha finito. Gli header il tuo script li invia al browser che ha fatto la richiesta, mica ad apache, quindi ovviamente è necessario anche un location se vuoi fare un redirect, ma potresti anche includere il contenuto della pagina 404 direttamente nello script senza bisogno di ulteriori redirect.

    Se invece il browser richiede una pagina che l'htaccess non risolve su nessuno script, allora Apache genera un 404 e lo processa con la SUA direttiva.

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da skidx
    ...Gli header il tuo script li invia al browser che ha fatto la richiesta, mica ad apache
    ma porc... quando la cosa è talmente evidente che ti sfugge...
    grazie anche ad Andr3a per la considerazione sul not found e a tutti gli altri.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.