Poljubno 404 sporočilo – Custom 404 error not found message
Vsi poznamo 404 error oz. Not found sporočilo (napako). 404 napaka spada pod standarden seznam HTTP napak pri odjemalcu (client) in sporoča, da je sicer komunikacija s spletnim strežnikom uspešna vendar strežnik (apache, IIS) ne more dobiti vsebine, ki je bila zahtevana (lahko tudi prepovemo določeno vsebino in vržemo 404 napako).
Da bi napako obiskovalcu sporočili na lep, pregleden ali zabaven način lahko 404 napako prilagodimo našim potrebam. Dodamo lahko design, ki se sklada z designom naše spletne strani, dodamo lahko tudi poljubno sporočilo ter form z iskalnikom, ki pomaga pri iskanju prave informacije na dotični spletni strani.
Poglejmo si PHP kodo, ki jo uporabimo v povezavi z iskalnikom in uporabnikom prijazni URL-ji. Uporabnik vnese http://spletnastran.com/stran_ki_ne_obstaja/ v naslovno (URL) vrstico brsklanika, PHP koda pa vrne 404 napako ter servira našo poljubno 404 error not found sporočilo. Še enkrat, ta način deluje z zgoraj omenjenim mod_rewrite za apache oz. ISAPI_Rewrite za IIS.
-
<?php
-
$url = resolveURLFolderRequest(); //funkcija, razložena v prijazni URL-ji prispevku
-
$mode= ($url['path'] == '/') ? '/home/' : $url['path'];
-
-
if ($url == 'home') {
-
} elseif ($url == 'welcome') {
-
} else {
-
exit;
-
}
-
?>
Kakšno sporočilo bomo podali uporabniku pa je čisto naša stvar, standarden primer:
-
<!-- TUKAJ DODAMO NAŠ HEADER (head sekcija (title, meta), body)
-
<div>
-
<h1>Error 404: File Not Found </h1>
-
We cannot find the page you requested.</h3>
-
Please try the following:</p>
-
<li>Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.</li>
-
<li>If you reached this page by clicking a link, please contact us to
-
report the broken
-
link</a>.</li>
-
<li>Or try the tabs above or the links on the right to search or browse Yale School of Medicine web sites.</li>
-
</ul>
-
</div>
-
<!-- TUKAJ DODAMO NAŠ FOOTER -->
Poznamo pa tudi druge načine, naprimer s pomočjo .htaccess datoteke kjer dodamo sledečo direktivno:
-
ErrorDocument 404 /404page.html
Direktiva spletnemu strežniku (apache) sporoči, da naj v primeru 404 napake prebere in izpiše datoteko, ki smo jo defenirali v .htaccess datoteki. Pazite, da ne uporabite absolutne pot do 404 html datoteke, ampak Site root-relative pot. Torej /pot_do_404_datoteke.html in ne http://spletnastran.com/pod_do_404_datoteke.html.
Podobno lahko storite tudi pri IIS, če imate dostop do konfiguracije IIS strežnika ali uporabljate ISAPI Rewrite, ki emulira apache .htaccess na IIS strežniku.
Opomba (Vir #1, Vir #2):
Internet Explorer (before Internet Explorer 7), however, will not display custom pages unless they are larger than 512 bytes, opting to instead display a "friendly" error page. This default behaviour can be changed under Tools | Internet Options by clicking on the Advanced tab and un-checking the "Show friendly HTTP error messages" check box.
Dodatne informacije:
- Spletna stran s seznamom povezav do poljubnih 404 sporočil
- Primeri 404 not found error slik, ki jih lahko uporabite na svoji strani
- How to create custom 404 error documents
- Is there an art of 404 pages?
- Naredi poljubno 404 sporočilo s pomočjo .htaccess datoteke
Podobni članki:
- Napiši svoj PHP error handler (obdelovalec napak:P)
- Apache htaccess preusmeritve
- Omejitev dostopa do spletne strani preko apache .htaccess in .htpasswd datoteke
- Iskalnikom in uporabnikom prijazni URL-ji (User – SEO freindly URL – Apache, IIS)
- cPanel – dodajanje apache mod_geoip modula – omejitev glede na državo obiskovalca
- PHP – Virtualne pod-domene – virtual subdomains
- Avtomatska preusmeritev pri uporabniku prijaznem sporočilu o napaki
- Eon MegaPos plačilni sistem – zen cart, VirtueMart, osCommerce, custom PHP modul



April 7th, 2008 ob 2:56 pm
Osebno preferiram 2. način. Me pa zanima, kako bi bilo možno 2. način združit z mod_rewrite? Da ko je brskalniku poslan 404 header, da avtomatsko preusmeri tudi na prijazen URL? Je zadeva mogoča?
April 7th, 2008 ob 6:09 pm
"Pazite, da uporabite absolutno pot do 404 html datoteke, ampak Site root-relative."
Bi se ta stavek moral brati takole morda:
"Pazite, da ne uporabite absolutne poti do 404 html datoteke, ampak site-root relative."?
lp
April 7th, 2008 ob 6:12 pm
Je mogoče, naredi redirect ob 404 errorju. Čeprov se mi vse skupaj zdi malce čudno, bolj da le izpšeš lepo / uporabno sporočilo.
April 7th, 2008 ob 6:15 pm
@gasper_k: Res je, sem popravil. Hvala.
April 7th, 2008 ob 11:10 pm
še vedno imaš napako v sklonu: pazite, da ne uporabite absolutne poti ...
pa ni edina, tele rodilniki "koga ali česa" te mal zafrkavajo
April 7th, 2008 ob 11:10 pm
pozabil povedat: v prostem času sem grammar nazi >:)
April 8th, 2008 ob 7:21 pm
Priznam, da v tem področju nisem "močen" in marsikje naredim napako. Če bo kaj takega mi kar povej, bom z veseljem popravil. Hvala.
October 21st, 2009 ob 6:43 pm
[...] Poljubno 404 sporočilo o napaki s pomočjo htaccess datoteke [...]