Titolo visibile
 
 
 LOCALI
Indice
Ristoranti Italia
Ristoranti Lazio
Pizzerie Napoletane
Ricerca per Regione
Ricerca Avanzata
Cucina Estera
Cucina Regionale
 
 PROGRAMMAZIONE
Indice
Html
Flash
JavaScript
VBScript
Java
 
 CULTURA
Scuole Private
Aforismi
Giornali Online
Dizionari
Matematica
 
 

E' opportuno personalizzare la pagina di errore codice 404. Restituire un codice 404 quando una pagina non viene trovata e' importante per i motori e personalizzarla e' importante per non perdere gli utenti che arrivano da un link non aggiornato o digitando un url sbagliata.

Se ricorrete ad esempio ad una ridirezione 302 (temporanea), invece di utilizzare il codice 404, questo può condurre i motori di ricerca ad attribuire, alla pagina inizialmente richiesta, il contenuto della pagina verso la quale l'utente (o il motore) viene dirottato. Questo puo' creare problemi di contenuto duplicato ("duplicate content").
E' meglio non confondere i motori e dare loro l'informazione giusta. Se restituite un codice 200 (codice di OK), che dovrebbe essere il codice di ritorno delle altre pagine del sito, ogni volta che il motore visiterà una pagina che non esiste più, potrebbe "vedere" lo stesso contenuto a seconda di come è stata personalizzata la pagina. Ci troviamo di nuovo con un problema di "duplicate content".
Una ridirezione di tipo 301 (permanente) e' preferibile ad un codice 404 solo quando la pagina richiesta esiste ancora ma ha cambiato indirizzo.

Mondo Unix

Creare un file .htaccess (attenzione a punto iniziale e alle maiuscole/minuscole) nella cartella principale del sito (HTTPDOCS) dove si inserira' il seguente codice:

ErrorDocument 400 /errore/errore400.html
ErrorDocument 401 /errore/errore401.html
ErrorDocument 403 /errore/errore403.html
ErrorDocument 404 /errore/errore404.html
ErrorDocument 500 /errore/errore500.html

Creare la cartella errore sotto la root (HTTPDOCS) del sito e creare al suo interno i files:

errore400.html
errore401.html
errore403.html
errore404.html
errore500.html

Se si ha la necessita' di gestire solo il codice 404, si puo' riportare solo la riga del 404.
 
Tali pagine di errore non funzionano per i file .php, e a tal fine e' possibile risolvere nel seguente modo.
 
Basta aggiungere nel file .htaccess di cui sopra le seguenti informazioni:
 
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule \.php$ /errore/errore404.htm
 
Spiegazione: Se non si trova (!-f) il path richiesto (%{SCRIPT_FILENAME}) sostituisce cio' che termina ($) con .php (\.php) con la pagina di errore 404 che in questo caso si trova nella cartella /errore/errore404.htm.

Trasferire/creare il file .htaccess nella root del dominio e la cartella errore sempre nella root del dominio
-assegnare alla cartella errore CHMOD 755, alla sottocartella log CHMOD 755 ed al file in essa contenuto, errore.txt CHMOD 666

Le uniche modifiche da apportare nel file errore.php sono le seguenti

#Notifica di errore al webmaster.
$notifica="linkbruttocane@aruba.it"; sostituire con il vostro indirizzo email

#Nome del tuo dominio
$nomesito="nome del tuo dominio"; sostituire con il nome del vostro dominio

#Link cliccabile per tornare alla home od ad una pagina a scelta.
$ritornahome="http://www.linkbruttocane.com"; sostituire con il link che preferite

File da scaricare per Unix.

Mondo Windows

Nel caso di Hosting sulla nuova piattaforma Windows 2003, e' possibile, limitatamente alle applicazioni asp.net e gestite tramite web.config, reindirizzare l'errore 404 delle pagine aspx, usando ad esempio un codice come questo web.config

<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="errore.aspx">
<error statusCode="404" redirect="404.aspx" />
</customErrors>
</system.web>
</configuration>

Restituzione di un codice di errore in PHP e ASP:

<%
Response.Status = "404 NOT FOUND"
%>

<?php
header("HTTP/1.0 404 Not Found");
?>
 

Script Asp per inoltro email su pagina di errore (e' da associare ad un javascript):

<%
Dim objMsg
Dim strReferer
Dim strPagina
Dim strTo
Dim strIp
Dim strSubject
Dim strBody

strReferer = "eventuale referer: " & Request.ServerVariables("HTTP_REFERER") & vbNewLine
strPagina = "pagina cercata: " & Request.ServerVariables("URL") & vbNewLine
strIp = "IP utente: " & Request.ServerVariables("REMOTE_ADDR") & vbNewLine
strTo = "webmaster@sitomio.com"
strSubject = "Errore 404 - sitomio.com"
strBody = "Un errore 404 Error si è verificato nel tuo sito" & vbNewLine & vbNewLine

Set objMsg = Server.CreateObject("CDONTS.NewMail")

objMsg.From = "webmaster@sitomio.com"
objMsg.To = strTo
objMsg.Subject = strSubject
objMsg.Body = strBody & strPagina & strReferer & strIp
objMsg.Send
Set objMsg = Nothing
%>

Script PHP per inoltro email:

<?
if(!isset($_GET['url'])){
?>
    <script language="JavaScript">
        var i = window.location.href;
        var k = document.referrer;
        var uri = i.replace("http://www.sitomio.com/","");
        var p = "http://www.sitomio.com/404_personal.php"+"?url="+uri+"&ref="+k;
        location.href=p;
    </script>
<?
} else {
$url = $_GET['url'];
$ref = $_GET['ref'];
unset(
$_GET);
?>
<meta http-equiv="refresh" content="5;URL=http://www.******.com">
<?
// per ottenere l'url che ha generato l'errore

$from = "***********";

$pagina = "http://".$_SERVER['HTTP_HOST']."/".$url;
$referer = $ref;
$ip = $_SERVER['REMOTE_ADDR'];

$to= $from;
$subject= "Errore 404 - ********.com";
$mailheaders= "From: $from";
$body .= "Un errore 404 Error si è verificato nel tuo sito:\n\n\n";
$body .= "pagina richiesta: ".$url."\n\n";
if(
$referer != ""){
    
$body .= "Referer: ".$referer."\n\n";
}
$body .= "Ip utente: ".$ip."\n\n";

// ora invia la mail
mail($to, $subject, $body, $mailheaders);
}
?>

Altro Script in asp:

<% 
 
' errori da pagine ASP 
pagina = Replace(Request.QueryString,"404;","") 
 
' errori da pagine ASP.NET - bisogna abilitarlo da web.config 
if Len(Request.QueryString("aspxerrorpath"))>0 then 
 pagina = Request.QueryString("aspxerrorpath") 
end if 
 
 ' pagina 
strRef = Request.ServerVariables("HTTP_REFERER") 
 
' ip dell'utente 
strIP = request.servervariables("REMOTE_HOST") 
 
strBodyText =  "URL: " & pagina _ 
  & strCRLF & _ 
  "Referer: " & strRef _ 
  & strCRLF & _ 
  "Browser: " & Request.ServerVariables("HTTP_USER_AGENT") &_ 
  strCRLF  & _ 
  "IP: " & strIP & VbCrLf & _ 
  "Cookies: " & Request.Cookies 
 
' invio l'e-mail 
Set objMail = Server.CreateObject("CDONTS.NewMail") 
objMail.Send "support@dominio", "support@dominio", "Errore 404", strBodyText, 0 
Set objMail = nothing 
 
Response.write ("La pagina che hai richiesto non è presente su questo sito") 
Response.write ("<BR>L'amministratore è stato avvisato via e-mail.") 
 
%>
 

Scritto il 22/03/2009 alle ore 07:00:00

Condividi su Facebook

 
 LOCALI - RICERCHE
Avanzata
Per Regione
Solo Pizzerie
Solo Internazionale
Solo Italiana
Per Tipo Cucina
Per Città nel Lazio
 
 SITO
Contattaci
Segnala locale
Feed Rss
Segnala un errore
Guestbook
News
Aggiungi a preferiti
Imposta Homepage
Segnala un Sito
Iscriviti
Login
 
 RICETTE CUCINA
Indice Ricette
Primi
Carne
Pollame
Pesce
Dolci
Cocktail
   
 
Questo sito e' un sito non commerciale e potrebbe riportare informazioni non aggiornate e/o non corrette. Leggi il disclaimer sottostante.

Lavoro |  Home |  Locali |  Info                   567544                 Disclaimer |  Portale |  Blog |  Ricette