Visualizzazione risultati 1 fino 30 di 30

Discussione: Errore 404 con redirect permanente

  1. #1
    Guest

    Predefinito Errore 404 con redirect permanente

    Come da titolo ho un redirect permanente 404, cioè, nel caso un file non esista vengo reindirizzato ad una pagina /errors.php?code=404 dove al suo interno mi scrive:


    L'indirizzo richiesto non è stato trovato su questo server. L'errore può essere dovuto ad un'errata digitazione oppure al fatto che il file è stato rimosso dal server.
    Ora, utilizzo questo codice:

    Codice PHP:
    $subject = array (
    '000' => $lang['Errors_000'],
    '400' => $lang['Errors_400'],
    '401' => $lang['Errors_401'],
    '403' => $lang['Errors_403'],
    '404' => $lang['Errors_404'],
    '500' => $lang['Errors_500']
    );


    //$result = $QUERY_STRING;
    if (isset($_GET['code']))
    {
    $result = intval($_GET['code']);
    }

    switch(
    $result)
    {
    case
    400:
    $error_msg = $lang['Errors_400_Full'];
    break;
    case
    401:
    $error_msg = $lang['Errors_401_Full'];
    break;
    case
    403:
    $error_msg = $lang['Errors_403_Full'];
    break;
    case
    404:
    $error_msg = '<b>' . $_SERVER['HTTP_REFERER'] . '</b><br /><br />' . $lang['Errors_404_Full'] . '';
    break;
    case
    500:
    $error_msg = $lang['Errors_500_Full'];
    break;
    default:
    $result = '000';
    $error_msg = $lang['Errors_000_Full'];
    }
    Come potete vedere nell'errore 404 mi viene restituita anche la pagina da cui arrivo.

    Esempio:

    Se io arrivo dalla pagina x.php, che mi linka una pagina y.php che non esiste l'errore sarà scritto così:

    mio_sito.org/x.php

    L'indirizzo richiesto non è stato trovato su questo server. L'errore può essere dovuto ad un'errata digitazione oppure al fatto che il file è stato rimosso dal server.
    Come posso essere reindirizzato alla pagina /errors.php?code=404 e mantenere la pagina che non esiste e stamparla a video?

    Grazie in anticipo

  2. #2
    Guest

    Predefinito

    La tua domanda non ha senso, se il file non esiste come puoi stamparlo a video?

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Cosa ti reindirizza alla pagina /errors.php?code=404...un .htaccess? Un redirect PHP?
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    La tua domanda non ha senso, se il file non esiste come puoi stamparlo a video?
    Se leggevi meglio avresti capito cosa intendevo, intendevo la pagina come LINK per quello ho fatto l'esempio pratico.

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Cosa ti reindirizza alla pagina /errors.php?code=404...un .htaccess? Un redirect PHP?
    un .htaccess messo in root:

    Codice:
    ##################################
    #      Errors Pages - BEGIN      #
    ##################################
    ##################################
    # Decomment these lines to enable error document management.
    # You can add absolute path if you want always the correct path being parsed.
    # Something like:
    # ErrorDocument 400 http://www.example.com/errors.php?code=400
    ##################################
    ErrorDocument 400 /errors.php?code=400
    ErrorDocument 401 /errors.php?code=401
    ErrorDocument 403 /errors.php?code=403
    ErrorDocument 404 /errors.php?code=404
    ErrorDocument 500 /errors.php?code=500
    ##################################
    #       Errors Pages - END       #
    ##################################

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Prova così (mi bastava che dicessi solo .htaccess ):
    Codice PHP:
    $error_msg = '<b>http://'.$_SERVER['HTTP_HOST'].'/'. $_SERVER['REQUEST_URI'] . '</b><br /><br />' . $lang['Errors_404_Full'] . '';
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    niente, mi restituisce:

    http:// miosito.org/errors.php?code=404

    L'indirizzo richiesto non è stato trovato su questo server. L'errore può essere dovuto ad un'errata digitazione oppure al fatto che il file è stato rimosso dal server.
    Senza spazio, l'ho inserito per non fare l'autolink.

  7. #7
    L'avatar di incontrielogica
    incontrielogica non è connesso Utente attivo
    Data registrazione
    12-06-2008
    Messaggi
    343

    Predefinito

    Non so se ho capito bene (credo di no) ma ho creato una pagina che si chiama not_found.html che ho messo nella root principale che appare ogni volta che no esiste una pagina.

    Cosa vorresti fare esattamente?

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da incontrielogica Visualizza messaggio
    Non so se ho capito bene (credo di no) ma ho creato una pagina che si chiama not_found.html che ho messo nella root principale che appare ogni volta che no esiste una pagina.

    Cosa vorresti fare esattamente?
    Quella del not_found la conosco, e non mi piace.

    In pratica gestisco, come hai potuto, vedere gli errori tramite .htaccess e redirect con quest'ultimo.

    Ora, dato che si viene reindirizzati, l'utente magari non sa cosa non è presente nel server, quindi mi serve che venga stampato a video l'indirizzo del file che non esiste e fino ad ora mi ha scritto o la pagina da cui si arriva (referer) o la pagina di errore che appare

  9. #9
    L'avatar di incontrielogica
    incontrielogica non è connesso Utente attivo
    Data registrazione
    12-06-2008
    Messaggi
    343

    Predefinito

    ah, secondo me non servirebbe a niente: io potrei farlo migliaia di volte per farti un dispetto! Tutte segnalazioni che non avrebbero fine..

    Ho capito, ma non so proprio come aiutarti.

    ciao, webmaster

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da incontrielogica Visualizza messaggio
    ah, secondo me non servirebbe a niente: io potrei farlo migliaia di volte per farti un dispetto! Tutte segnalazioni che non avrebbero fine.
    Ma non mi viene spedita la mail automaticamente se succede, potrebbe, ma ho disabilitato questo proprio per evitare che qualcuno si diverta facendo un refresh continuo.

    A me serve per far capire all'utente dove sta e quale è il file che non è stato trovato, magari per una errata digitazione, ma a me non cambia niente

  11. #11
    Guest

    Predefinito

    Ora ho capito meglio. Prova così
    Codice PHP:
    $error_msg = "<a href=\"http://".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'] ."\">".$_SERVER['REQUEST_URI']."</a><br /><br />".$lang['Errors_404_Full'];
    Ultima modifica di gabryhacker : 08-12-2008 alle ore 10.54.28

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    Ora ho capito meglio. Prova così
    Codice PHP:
    $error_msg = "<a href=\"http://".$_SERVER['HTTP_HOST']."/".$_SERVER['REQUEST_URI'] ."\">".$_SERVER['REQUEST_URI']."</a><br /><br />".$lang['Errors_404_Full'];
    E' lo stesso codice che mi ha postato miki92

  13. #13
    Guest

    Predefinito

    No non è lo stesso: il mio scrive un link

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    No non è lo stesso: il mio scrive un link
    Con tutto rispetto per te ma:
    1. So arrivare a come scrivere un link.
    2. Le variabili utilizzate sono le stesse di miki92.
    3. Che serve linkare un file non esistente se gli devo segnalare che non esiste?

  15. #15
    Guest

    Predefinito

    Allora lascia stare, sono io che non ho capito

  16. #16
    Guest

    Predefinito

    Allora, sarà sicuramente un post lungo da leggere ma voglio essere sicuro che si capisca:

    Io sto navigando nel mio sito x.com/, navigando scrivo nell'url x.com/index.htmk.

    Il file non esiste, quindi, nell'.htaccess ho la stringa che, in caso il file richiesto non esista, l'utente venga reindirizzato alla pagina x.com/error.php?code=404.

    Dato che l'utente viene reindirizzato, non sa quale file non esista nel server, perchè nella barra degli indirizzi viene mostrato quello dell'errore.

    Ora, mi serve che, NONOSTANTE sia stato reindirizzato, nella apgina di errore mi spunti la pagina PRIMA del redirect, quindi in questo caso x.com/index.htmk e l'errore dovrà essere:

    x.com/index.htmk

    L'indirizzo richiesto non è stato trovato su questo server. L'errore può essere dovuto ad un'errata digitazione oppure al fatto che il file è stato rimosso dal server.
    Facendo come dite voi, le variabili SERVER mi restituiscono o l'indirizzo da dove arrivo o la pagina d'errore 404.

    Si è capito ora il problema che ho?

  17. #17
    Guest

    Predefinito

    Visto che è un redirect, a rigor di logica dovresti usare la globale $_SERVER['REDIRECT_SCRIPT_URL'] e non $_SERVER['HTTP_REFERER'], anche $_SERVER['SCRIPT_URL'] dovrebbe funzionare, ma se dici che non funziona ci credo, non avendo tempo di provare ;)

  18. #18
    Guest

    Predefinito

    Adesso ho capito bene, scusa per la perdita di tempo.
    Comunque sul mio sito io utilizzo $_SERVER['HTTP_REFERER'] e funziona tutto bene (anch0io utilizzo htaccess per il redirect). Bo prova con le soluzioni di inverno

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    Adesso ho capito bene, scusa per la perdita di tempo.
    Comunque sul mio sito io utilizzo $_SERVER['HTTP_REFERER'] e funziona tutto bene (anch0io utilizzo htaccess per il redirect). Bo prova con le soluzioni di inverno
    il problema del $_SERVER['HTTP_REFERER'] è che in caso tu scriva l'indirizzo nella barra del browser, non viene settato, perchè non provieni da nessuna pagina web. Quindi è da escludere in quando non adatto a quello che richiede jcdesign

  20. #20
    Guest

    Predefinito

    Citazione Originalmente inviato da Inverno Visualizza messaggio
    Visto che è un redirect, a rigor di logica dovresti usare la globale $_SERVER['REDIRECT_SCRIPT_URL'] e non $_SERVER['HTTP_REFERER'], anche $_SERVER['SCRIPT_URL'] dovrebbe funzionare, ma se dici che non funziona ci credo, non avendo tempo di provare ;)
    Già provato, quella variabile restituisce l'url a cui punta il redirect, non l'indirizzo prima del redirect

  21. #21
    Guest

    Predefinito

    mi pare alquanto strano, che valore ha $_SERVER['REDIRECT_STATUS']?

  22. #22
    Guest

    Predefinito

    Ha come valore 200, non conoscevo questa variabile

  23. #23
    Guest

    Predefinito

    200 (status: ok) non è corretto dovrebbe darti 404 ...

    giusto perchè mi pareva strano, ho provato al volo sul mio spazio e mi pare che tutto funzioni...
    provare per credere

  24. #24
    Guest

    Predefinito

    ma io eseguo un redirect proprio di pagina, non è che per esempio scrivo una cosa come la tua e nello stesso indirizzo web mi appare però la apgina 404.

    Dalla pagina non esistente passo proprio alla pagina error.php.

  25. #25
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Citazione Originalmente inviato da jcdesign Visualizza messaggio
    Allora, sarà sicuramente un post lungo da leggere ma voglio essere sicuro che si capisca:

    Io sto navigando nel mio sito x.com/, navigando scrivo nell'url x.com/index.htmk.

    Il file non esiste, quindi, nell'.htaccess ho la stringa che, in caso il file richiesto non esista, l'utente venga reindirizzato alla pagina x.com/error.php?code=404.

    Dato che l'utente viene reindirizzato, non sa quale file non esista nel server, perchè nella barra degli indirizzi viene mostrato quello dell'errore.

    Ora, mi serve che, NONOSTANTE sia stato reindirizzato, nella apgina di errore mi spunti la pagina PRIMA del redirect, quindi in questo caso x.com/index.htmk e l'errore dovrà essere:



    Facendo come dite voi, le variabili SERVER mi restituiscono o l'indirizzo da dove arrivo o la pagina d'errore 404.

    Si è capito ora il problema che ho?
    Scusate la reintromissione nella discussione e per la probabile inutilità di questo post ma è tempo che penso a questo e se erro voglio capire.

    Quando si personalizza la pagina d'errore con .htaccess perchè parlate di redirect?
    Secondo me è errato...comunque non è che il problema può essere dato da qualche personalizzazione della pagina 404 del tuo CMS?

    Cioè è un po' come personalizzare tramite .htaccess la pagina d'errore 404 di wordpress...se per curiosità (come ho fatto io) hai provato a gestire gli errori 404 in wordpress vedrai che ogni pagina cercata (anche se inesistente) non viene personalizzata dalla regola .htaccess ma da wordpress...quindi da questo posso pensare che sia un problema del tuo CMS.

    (So che utilizzi un CMS perchè conosco il sito dove utilizzi questi codici...per la cronaca: io e JC ci sentiamo anche in vie private).
    Apprezzi l'aiuto? Offrimi un caffè!

  26. #26
    Guest

    Predefinito

    Allora, ho notato che se inseriscop la path assoluta del file per il redirect non funziona la variabile REQUEST_URI mentre se metto /errors.php funziona perfettamente.

    Ci siamo sbattuti un casino per niente, vi chiedo scusa ragazzi per il tempo che vi ho portato via ma credo sia stato d'insegnamento per un futuro

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Quando si personalizza la pagina d'errore con .htaccess perchè parlate di redirect?
    sì è scorretto, in realtà è un alias, in quanto l'indirizzo nella barra del browser non dovrebbe cambiare...
    lìho usato impropriamente per semplificare.

  28. #28
    Guest

    Predefinito

    Un'altra soluzione (direi non elegantissima) sarebbe quella di allegare (non so neanche se si possa fare con htaccess) alla query string errors.php?code=404 il nome della pagina non trovata. L'url sarebbe errors.php?code=404&pagina=aaa.aaa (esempio)

  29. #29
    Guest

    Predefinito

    nel mio caso le pagine esistono. ma in alcuni momenti mi da l'errore 404 non appena le carica. le vedi un attimo poi reindirizza alla pagina di errore..

    http://lucacococcetta.altervista.org

    oggi da problemi sui video linkati in homepage. scusate ma non so nulla di programmazione. da che può dipendere?

  30. #30
    Guest

    Predefinito

    1- Non c'entra con il problema principale del topic.

    2- In quali pagine accade questo? Io vedo tutto correttamente.


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •